V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cpf
V2EX  ›  Node.js

nodejs 后端框架的选择

  •  2
     
  •   cpf · 2023-01-16 22:56:51 +08:00 · 13173 次点击
    这是一个创建于 436 天前的主题,其中的信息可能已经有所发展或是发生改变。

    只想安分的写一些接口,给自己的项目用,可能大概有 2 ,30 个接口吧 看了这么久,看中两个,nestjsmidwayjs,两个的使用方式现在看着挺像的 有木有过来人给给建议,我应该选哪个? 前端用的 React,想搞个前后端分离的项目

    小声提问:trpc 和上面那两个的区别是什么,去到官网看,没看太懂

    74 条回复    2023-05-30 17:39:21 +08:00
    cpf
        1
    cpf  
    OP
       2023-01-16 23:00:01 +08:00
    大背景:我是一名前端,最近在搞毕设
    Hanggi
        2
    Hanggi  
       2023-01-16 23:04:14 +08:00
    选 Nest.js 就好,其他的没有特别理由就不用考虑了。
    ysc3839
        3
    ysc3839  
       2023-01-16 23:04:29 +08:00 via Android
    啥需求?只是对接数据库的话用 Koa+TypeORM 吧
    estk
        4
    estk  
       2023-01-16 23:10:52 +08:00 via iPhone
    小需求 3 楼,大需求 NestJS
    Leviathann
        5
    Leviathann  
       2023-01-16 23:13:23 +08:00
    trpc 比较有冲击力
    方便毕设里吹
    本身自带 server 端
    也可以和 next.js fastify express 结合使用
    crysislinux
        6
    crysislinux  
       2023-01-17 00:09:12 +08:00 via Android
    要简单直观还是 express 这种传统框架好。nestjs 概念细节挺多的。说实话我更喜欢 express 那种 route 定义。
    iwdmb
        7
    iwdmb  
       2023-01-17 00:12:07 +08:00
    项目不大求稳定选 Express 久经考验
    https://expressjs.com/
    IvanLi127
        8
    IvanLi127  
       2023-01-17 00:38:40 +08:00 via Android   ❤️ 2
    毕设直接 express 或 fastify 吧,避免折腾多余的东西
    heasy
        9
    heasy  
       2023-01-17 00:52:55 +08:00 via Android
    nestjs
    me221
        10
    me221  
       2023-01-17 00:55:35 +08:00
    蹲一个 trpc 是什么东西.

    我也是看了半天没看懂
    shuimugan
        11
    shuimugan  
       2023-01-17 04:04:37 +08:00   ❤️ 1
    NestJS 比较正统,Midway 会被阿里味毒打,Directus 比较适合单人干活偷懒省事
    ericgui
        12
    ericgui  
       2023-01-17 04:24:34 +08:00
    @ysc3839 prisma 怎么样
    cuebyte
        13
    cuebyte  
       2023-01-17 05:43:12 +08:00
    Redwood.js 了解一下
    liveoppo
        14
    liveoppo  
       2023-01-17 06:01:15 +08:00
    express 简单明了
    nextjs 可得学相当时间
    netabare
        15
    netabare  
       2023-01-17 07:11:19 +08:00 via Android
    @me221 +1 ,我也有点好奇(
    kongkx
        16
    kongkx  
       2023-01-17 07:40:26 +08:00 via iPhone
    从积累经验的角度看,选 nestjs
    haole2022
        17
    haole2022  
       2023-01-17 08:15:17 +08:00
    小项目可以试试 trpc

    正常前后端分离,后端写完 api 后,前端需要写一堆 boilerplate 代码调用 api ,而且不知道数据的具体 schema

    使用 trpc ,可以直接调用后端 function 名称获取数据,通过 typescript 也能看到数据具体 schema

    后端更新了 schema / function, 前端会自动报错,这样写起来很放心
    wjx0912
        18
    wjx0912  
       2023-01-17 08:47:46 +08:00
    nestjs 吧。唯一的缺点就是设置断点后速度很慢
    dayeye2006199
        19
    dayeye2006199  
       2023-01-17 08:58:53 +08:00
    接口不多就 express 把.
    学 nestjs 的时间,express 都撸完了
    zhangxh1023
        20
    zhangxh1023  
       2023-01-17 09:10:25 +08:00
    如果不想搞的很复杂的话,midwayjs 因为自带一些进程管理,单机跑什么的或者有这方面的需求可以简单很多。
    个人觉得相对来说 nestjs 上手会复杂一些,eggjs 和 midwayjs 中文文档都完善一些。
    如果让我选择,公司项目我选 eggjs ,简单干完活就完事儿了(话说之前一个公司项目我用了 midwayjs ,后悔死了,后面直接变成 anyscript )。如果是自己玩,我选 nestjs ,好玩儿,看起来牛逼。
    wu67
        21
    wu67  
       2023-01-17 09:14:55 +08:00
    要快速出货, express 或者 koa 一把梭. nestjs 和 prisma 真的是把我劝退了, 入门曲线太那啥了...有那精力, 我为什么不直接来套 java 生态
    TomVista
        22
    TomVista  
       2023-01-17 09:23:00 +08:00
    express 这种就行了,我一直想不明白把 spring 那套搬到 node 上是想干啥,java 不香吗
    zhangky
        23
    zhangky  
       2023-01-17 09:34:12 +08:00
    express
    SanjinGG
        24
    SanjinGG  
       2023-01-17 09:37:03 +08:00
    直接 koa 吧,你现在需求也只是为前端提供数据支持,nest 学习成本太大了,不深耕后端选 nest 没有必要。
    superedlimited
        25
    superedlimited  
       2023-01-17 09:42:47 +08:00
    nest.js 并不是 spring 那一套,它是源于 angular.js
    hahiru
        26
    hahiru  
       2023-01-17 09:42:58 +08:00
    express ,简单方便快捷。我 10 分钟就能弄完的东西弄其他那么复杂的干啥。
    sjhhjx0122
        27
    sjhhjx0122  
       2023-01-17 09:44:51 +08:00   ❤️ 1
    @superedlimited nest 并不是 angular.js 那一套,它是源于 angular ,这两个东西还是天差地别的
    L1shen
        28
    L1shen  
       2023-01-17 09:59:39 +08:00
    可以看看 https://create.t3.gg/
    这个集成的技术栈
    libook
        29
    libook  
       2023-01-17 10:16:47 +08:00
    只写接口的话 Express 开箱即用,希望自己搭配中间件的话 Koa 就可以。
    其他的看你是否有其他语言框架的架构思想需要,有一堆参考其他语言框架思想的框架。
    weixiangzhe
        30
    weixiangzhe  
       2023-01-17 10:36:39 +08:00
    先 github 找个自个能看懂的 demo 先,express 也行嘛,nestjs 确实比较前期花时间
    loading
        31
    loading  
       2023-01-17 10:50:01 +08:00
    看看 pocketbase 吧,后端直接不用管。你新建个文件夹放你的前端文件就行了。
    Fca
        32
    Fca  
       2023-01-17 11:05:41 +08:00
    eggjs
    leeho
        33
    leeho  
       2023-01-17 11:07:51 +08:00
    nestjs ,省心省事
    lovedebug
        34
    lovedebug  
       2023-01-17 11:07:56 +08:00
    推荐 nestjs ,已经在云服务上大量使用
    FrankFang128
        35
    FrankFang128  
       2023-01-17 11:13:44 +08:00
    Next.js > Nest.js > express
    hutoer
        36
    hutoer  
       2023-01-17 11:14:09 +08:00
    fastify 足够了,nestjs 太复杂,自己用用完全没必要
    orluna
        37
    orluna  
       2023-01-17 11:17:56 +08:00
    midway
    nullEDYT
        38
    nullEDYT  
       2023-01-17 11:18:07 +08:00
    折腾自己吧,怎么难怎么来
    tonytonychopper
        39
    tonytonychopper  
       2023-01-17 11:18:14 +08:00
    直接 nestjs
    wwatson
        40
    wwatson  
       2023-01-17 11:20:49 +08:00   ❤️ 1
    2 、30 个接口的话直接用 Nestjs 吧,开箱即用,搭配 prisma 非常丝滑,用 Express 还需要自己一点一点组轮子。别用阿里的东西,面向 kpi 的产物,用了会变得不幸。
    334132462
        41
    334132462  
       2023-01-17 11:21:21 +08:00
    next.js 也可以 特喜欢那种文件目录既路由的感觉 约定既配 并且也可以写 api
    cpf
        42
    cpf  
    OP
       2023-01-17 11:27:16 +08:00
    非常感谢大家的建议,我这个毕设是打算后面继续维护迭代的,所以不想草草了事,当时有考虑过`express`(因为我一开始学的就是`express`,写几个接口很方便),但是我不太懂后端,比如文件结构之类的,如果单单用`express`的话,我可能写出来的代码会很难看,然后好像也没有 ts 支持,今天上午想了一上午,还是决定使用`nestjs`,虽然我不懂那些依赖注入、装饰器的那些原理,但是我看着挺舒服的,应该也能好好的写下去,加油!

    > `trpc`真的没有大佬在用吗?(干瞪眼)我看`star`数 2022 年上涨的挺快的
    clf
        43
    clf  
       2023-01-17 11:29:50 +08:00
    整花里胡哨一点可以搭一个 laf 的 serverless 平台,然后写云函数。
    Pipecraft
        44
    Pipecraft  
       2023-01-17 11:42:13 +08:00
    前几天看到的一篇文章:为何开发人员开始喜欢 tRPC 啦? https://linux-china.davao.page/blog/2023-01-14-why-trpc/
    sparkle2015
        45
    sparkle2015  
       2023-01-17 11:46:00 +08:00
    其实也可以不用前后端分离。如果不前后端分离的话,可以看看 remix ( https://remix.run/ ) 这个框架。
    nerocho
        46
    nerocho  
       2023-01-17 11:48:29 +08:00
    如果要在 midwayjs 和 nestjs 二选一的话,建议 nestjs ;或者就纯纯的 koajs 或者 expressjs 不香么,简单小巧项目清真。个人觉得 nodejs 后端用 typescript 挺烦的,不论是调试还是打包编译啥的挺慢的,nodejs 本身语法跟进挺快的,没必要搞啥 ts 。或者你要写 ts ,直接写 deno 不就完了,最后说一句 golang 真香。。。
    gimp
        47
    gimp  
       2023-01-17 11:58:30 +08:00
    Express 一把梭
    cktsun
        48
    cktsun  
       2023-01-17 12:26:52 +08:00 via Android
    tRPC + express/fastify 最好
    cktsun
        49
    cktsun  
       2023-01-17 12:29:05 +08:00 via Android
    t3 stack 很流行 trpc 這一套, 又支援邊緣計算, nestjs 就大可不必了
    如果你不肯挑戰新事物, 你就過時了
    shuson
        50
    shuson  
       2023-01-17 12:40:40 +08:00
    试试 headless CMS ,例如 strapi ,keystone 之类的
    如果你是前端,不擅长后台+数据库
    cktsun
        51
    cktsun  
       2023-01-17 12:43:18 +08:00 via Android
    trpc 是什麼?好不好用?下手去用才知道
    要配合 Typescript, 至於那些說 Node+TS 麻煩不如用 deno 的人, 你不用看, 他們壓根沒試過
    看自己想選擇哪一些你認為合適的技術, 但不要怕設置麻煩
    RRRoger
        52
    RRRoger  
       2023-01-17 13:31:11 +08:00
    小项目可以使用 express 挺简单的
    dc2002007
        53
    dc2002007  
       2023-01-17 13:50:11 +08:00
    thinkjs 简单使用,不费脑子
    TWorldIsNButThis
        54
    TWorldIsNButThis  
       2023-01-17 14:10:35 +08:00 via iPhone
    2023 年自己的项目显然是 trpc
    对于全栈 web 开发有划时代意义的全链路类型安全
    JavenXiao
        55
    JavenXiao  
       2023-01-17 14:23:51 +08:00
    我推荐个二合一的框架:Meteor ( https://www.meteor.com

    可以用 react 语法前后端一把梭
    xieren58
        56
    xieren58  
       2023-01-17 14:26:46 +08:00
    推荐一个小众的, 我已经用在生产一年多了. https://moleculer.services/
    hutoer
        57
    hutoer  
       2023-01-17 14:53:03 +08:00
    @xieren58 我也在用 moleculer ,看到 moleculer 后果断放弃 nestjs
    uni
        58
    uni  
       2023-01-17 15:34:45 +08:00
    说不定你只需要 strapi……
    learningman
        59
    learningman  
       2023-01-17 15:50:55 +08:00
    想要强类型为啥不 graphql
    LiTangDingZhen
        60
    LiTangDingZhen  
       2023-01-17 15:52:25 +08:00
    小项目用 express koa 就行
    kxxoling
        61
    kxxoling  
       2023-01-17 16:16:24 +08:00
    实用一下 redwood ,感觉很完善了,一个大而全的全栈框架。
    CoderLife
        62
    CoderLife  
       2023-01-17 16:23:17 +08:00
    eggjs
    LawlietZ
        63
    LawlietZ  
       2023-01-17 16:29:11 +08:00
    egg
    longjiahui
        64
    longjiahui  
       2023-01-17 21:09:18 +08:00
    egg
    Al0rid4l
        65
    Al0rid4l  
       2023-01-18 00:43:56 +08:00
    底层的 express/koa/fastify, 三个里面建议 fastify, 不建议 express
    大而全的就 nestjs
    headless cms 就 strapi
    ikidou
        66
    ikidou  
       2023-01-18 10:34:06 +08:00 via Android
    歪个楼,简单写 api 可以试试 cloudflare workers/ pages functions ,支持 kv 数据库,最近好像支持 sql 了,可以部署到他的服务器上,不知道和楼上提到的框架那个写起来更快
    kylebing
        67
    kylebing  
       2023-01-30 14:54:24 +08:00
    express 就足够好用了感觉,我的项目除了自行重启更新功能外,就没出过问题。
    一个普通项目 + 一个 websocket 服务

    arfaWong
        68
    arfaWong  
       2023-02-02 08:39:51 +08:00
    @haole2022 #17 看你的介绍,感觉 trpc 和 grpc 是很像的东西
    YOUXIAZ
        69
    YOUXIAZ  
       2023-02-13 16:16:58 +08:00
    midway
    esee
        70
    esee  
       2023-03-10 00:46:45 +08:00
    @cpf 有点好奇,如果是自己一个人写,前后端一把梭的,真的有必要上 ts 么。我反正自己写的时候就喜欢纯 js 。。
    chaselen
        71
    chaselen  
       359 天前
    @esee #70 小项目 js ,大点的 ts 。要不到处都是 any ,代码提示都没有,写一堆 jsdoc 也挺麻烦的
    fairylyness
        72
    fairylyness  
       338 天前
    @esee 感觉没啥必要,ts 感觉多人合作的时候更有用,或者是项目大了的情况下上 ts
    rockey543400
        73
    rockey543400  
       323 天前 via iPhone
    强推 directus hasura
    特别是 hasura 很方便就能实现分布式
    directus 的优势是方便,连后台管理界面都不用写了
    Jame00001
        74
    Jame00001  
       302 天前
    我之前做博客也试过 nestjs ,后来放弃了,纯纯的浪费时间。
    它是一种另起炉灶的框架,什么都是重新定义,什么都要重新学,完全与其他技术隔离(除了 ts ),类似 flutter 。但 flutter 的地位不是他能比的,只增加 ts 经验与 nodejs 几乎无关找工作几乎无贡献。
    学这种冷门复杂的框架,几乎没有任何收益,有那精力直接用 java 不好吗。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5462 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 08:31 · PVG 16:31 · LAX 01:31 · JFK 04:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.