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

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

想请教一下这么弄会不会有什么问题,代码会不会比较难以管理?
7041 次点击
所在节点    JavaScript
34 条回复
skenan
2022-12-05 02:24:19 +08:00
https://create.t3.gg/ 试试这个 trpc typescript tailwindcss prisma
amlee
2022-12-05 02:38:20 +08:00
@dayeye2006199 你要是把业务逻辑放到 nextjs 里面写,那 nextjs 跟 php 没啥区别了。如果想统一技术栈,建议后端用 express,koa,或者 nestjs
charlie21
2022-12-05 06:41:01 +08:00
nest.js
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
2022-12-05 09:49:39 +08:00
可以,有人这么做。
cheerxl
2022-12-05 10:34:00 +08:00
nextjs + prisma
cheerxl
2022-12-05 10:36:14 +08:00
slert
2022-12-05 11:22:58 +08:00
只能说是同构 谈不上 fullstack
nikolai
2022-12-05 12:10:41 +08:00
ragnaroks
2022-12-05 12:24:33 +08:00
可以,但是不建议,next 本身还是偏前端,没有 next 、express 那些偏后端或底层的功能。

如果你的后端需求只是简单的逻辑计算和数据处理,比如天气预报、数据转图表、用户管理等,可以用。
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
2022-12-08 09:35:29 +08:00
@wanacry 看着好像 chatGPT 回答的。。。
huangzongzhuan
270 天前
@twinsant 味太冲
lanvige
267 天前
首先说答案:可以。
Next.js 现在首推的就是服务端渲染,并提供了 API 机制。

但社区现在也在思考,以 Next.js 为代表的框架是不是走偏了:
https://marmelab.com/blog/2023/06/05/react-angularjs-moment.html
https://news.ycombinator.com/item?id=36210765

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/899993

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX