V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
dayeye2006199
V2EX  ›  JavaScript

Next.JS 可以作为 fullstack 框架吗?

  •  
  •   dayeye2006199 · 2022-12-04 16:03:55 +08:00 · 6760 次点击
    这是一个创建于 481 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我是 JS/TS 小白(本职是后端工程师)。
    现在团队有个项目,前端已经用了 Next.JS (配合 TS ),现在在考虑后端的选型,是不是也选择一个支持 TS 的 web 框架,统一语言,方便共享一些数据模型。
    看了一下 Next 的 getServerSideProps ,发觉好像把从数据库里面获取数据(例如调用 ORM)的逻辑写在这个部分也没太大的问题。
    比较复杂的 API 逻辑,比如对接其他第三方的接口,做一些简单的运算,用 API route 似乎也可行。

    想请教一下这么弄会不会有什么问题,代码会不会比较难以管理?
    34 条回复    2023-08-20 17:06:44 +08:00
    TWorldIsNButThis
        1
    TWorldIsNButThis  
       2022-12-04 16:05:36 +08:00
    最近看了一些 trpc 的介绍,感觉配合 nextjs 挺爽的
    搞一个 monorepo ,前后端共享类型和数据校验
    loading
        2
    loading  
       2022-12-04 16:22:12 +08:00
    nset.js+next.js ???
    dayeye2006199
        3
    dayeye2006199  
    OP
       2022-12-04 16:37:33 +08:00 via Android
    @loading 不,只有 next.js
    ifdef
        4
    ifdef  
       2022-12-04 17:05:21 +08:00   ❤️ 2
    Next.JS 是一个基于 React 的服务端渲染( SSR )框架,它可以帮助开发人员快速构建服务端渲染的 React 应用程序。

    Next.JS 作为一个前端框架,它本身并不提供后端的功能,所以不能作为 fullstack 框架。如果您需要构建一个全栈应用程序,您需要配合后端框架(如 Express 、Koa 等)来实现。

    但是,Next.JS 可以作为前端框架与后端框架的结合体来使用。在这种情况下,Next.JS 可以帮助您快速构建服务端渲染的全栈应用程序,并且还提供了许多方便的功能,如预渲染、路由、代码分割等。这样,您就可以利用 Next.JS 的优点,快速构建高效、可靠的全栈应用程序。

    by chatgpt
    cktsun
        5
    cktsun  
       2022-12-04 17:08:14 +08:00 via Android
    如果你主力開發 web, nextjs 是一個非常好的選擇

    但是如果你需要桌面端程式和手機端程式的整合, 純 react 可能會更好
    loading
        6
    loading  
       2022-12-04 17:09:09 +08:00
    @dayeye2006199 #3 我是推荐你 nest.js 写后端
    wunonglin
        7
    wunonglin  
       2022-12-04 17:17:27 +08:00
    你需要的是 nest.js
    BugCry
        8
    BugCry  
       2022-12-04 17:46:15 +08:00 via Android
    挺好用的,搭配 knex.js ,小项目一把梭
    BugCry
        9
    BugCry  
       2022-12-04 17:47:41 +08:00 via Android
    来人,给 @ifdef 。。。换上敌军的衣服!
    jeesk
        10
    jeesk  
       2022-12-04 18:41:32 +08:00
    @cktsun 老哥是对岸敌占区的同志? 哈哈
    wateryessence
        11
    wateryessence  
       2022-12-04 18:49:20 +08:00
    nestjs
    zhouyg
        12
    zhouyg  
       2022-12-04 18:54:54 +08:00
    不能,nextjs 是重渲染的框架,偏前端,还缺少重数据逻辑的部分
    ucun
        13
    ucun  
       2022-12-04 19:06:40 +08:00
    可以,nextjs 也能处理后端逻辑。可以看文档,也可以看自带模板的 api 目录。
    KENNHI
        14
    KENNHI  
       2022-12-04 21:04:06 +08:00 via Android
    我建议是用你们团队熟悉的后端技术
    windfarer
        15
    windfarer  
       2022-12-04 21:31:58 +08:00   ❤️ 1
    34C
        16
    34C  
       2022-12-04 21:37:43 +08:00
    用 next.js 做过至少 10 个 fullstack 小网站了
    api route 做前后端分离的页面不要太爽
    加个 sequelize 就有数据库 orm 了
    hlwjia
        17
    hlwjia  
       2022-12-04 21:43:52 +08:00
    对于小项目或者试水型的项目,用 Next.js 太方便了
    hlwjia
        18
    hlwjia  
       2022-12-04 21:45:18 +08:00
    做一些面向海外的项目,直接 firebase ,啧啧啧,香
    chenzhe
        19
    chenzhe  
       2022-12-05 00:13:00 +08:00 via iPhone
    这两天刚开始写。
    Express+NextJS
    dayeye2006199
        20
    dayeye2006199  
    OP
       2022-12-05 00:50:21 +08:00 via Android
    @chenzhe 会把一些数据的接口定义放在公共的目录下前后共享吗?
    skenan
        21
    skenan  
       2022-12-05 02:24:19 +08:00 via iPhone
    https://create.t3.gg/ 试试这个 trpc typescript tailwindcss prisma
    amlee
        22
    amlee  
       2022-12-05 02:38:20 +08:00
    @dayeye2006199 你要是把业务逻辑放到 nextjs 里面写,那 nextjs 跟 php 没啥区别了。如果想统一技术栈,建议后端用 express,koa,或者 nestjs
    charlie21
        23
    charlie21  
       2022-12-05 06:41:01 +08:00 via Android
    nest.js
    renhou
        24
    renhou  
       2022-12-05 07:54:05 +08:00
    前端 SPA 框架:React
    前端 SSR ,SSG 框架:Next.js (最新版本已经放弃了 getServerSideProps API )
    后端框架:Nest.js Koa.js
    前后端全栈框架:Blitz.js
    以上均为基于 js 支持 ts 的框架

    如果你想前后端(相对)统一:Nest.js Koa.js
    如果你想开发全栈:Blitz.js
    如果你只考虑后端:Java Go Python...
    ryougifujino
        25
    ryougifujino  
       2022-12-05 09:49:39 +08:00
    可以,有人这么做。
    cheerxl
        26
    cheerxl  
       2022-12-05 10:34:00 +08:00
    nextjs + prisma
    cheerxl
        27
    cheerxl  
       2022-12-05 10:36:14 +08:00
    slert
        28
    slert  
       2022-12-05 11:22:58 +08:00
    只能说是同构 谈不上 fullstack
    nikolai
        29
    nikolai  
       2022-12-05 12:10:41 +08:00   ❤️ 1
    ragnaroks
        30
    ragnaroks  
       2022-12-05 12:24:33 +08:00
    可以,但是不建议,next 本身还是偏前端,没有 next 、express 那些偏后端或底层的功能。

    如果你的后端需求只是简单的逻辑计算和数据处理,比如天气预报、数据转图表、用户管理等,可以用。
    wanacry
        31
    wanacry  
       2022-12-05 13:53:48 +08:00
    在理论上,Next.JS 可以作为 fullstack 框架来使用。它提供了 server-side rendering 的功能,可以在 getServerSideProps 函数中处理数据库访问和调用 ORM 等操作。

    但是,这并不意味着 Next.JS 是一个专为 fullstack 开发而设计的框架。它主要还是针对前端开发的,并且有一些局限性,比如对于比较复杂的后端逻辑,可能不太适合使用 Next.JS 。

    因此,如果团队项目需要一个专为 fullstack 开发设计的框架,可能还需要考虑其他选项,比如 Express 、Koa 等框架。

    在使用 Next.JS 作为 fullstack 框架时,可能会导致代码难以管理,因为 Next.JS 没有提供特定的后端管理工具,所有的业务逻辑都需要在一个文件中编写和维护。

    因此,使用 Next.JS 作为 fullstack 框架需要谨慎考虑,并确保团队成员都有足够的经验和能力来管理和维护这样的代码。
    twinsant
        32
    twinsant  
       2022-12-08 09:35:29 +08:00
    @wanacry 看着好像 chatGPT 回答的。。。
    huangzongzhuan
        33
    huangzongzhuan  
       224 天前
    @twinsant 味太冲
    lanvige
        34
    lanvige  
       222 天前
    首先说答案:可以。
    Next.js 现在首推的就是服务端渲染,并提供了 API 机制。

    但社区现在也在思考,以 Next.js 为代表的框架是不是走偏了:
    https://marmelab.com/blog/2023/06/05/react-angularjs-moment.html
    https://news.ycombinator.com/item?id=36210765
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2768 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 15:05 · PVG 23:05 · LAX 08:05 · JFK 11:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.