关于 Node.js 框架进阶选型的问题。

发布于 1周前 作者 bupafengyu 来自 nodejs/Nestjs

关于 Node.js 框架进阶选型的问题。
Node.js 基础的框架 Express 和 Koa 之后,NestJS 和 egg.js 选哪个作为进阶学习框架比较好?
因为两者是基于不同的底层框架再封装。
NestJS 又对 TS 支持更加直接,Express 生态也相对丰富,同时内置了 Swagger 方便生成接口测试文档。
egg.js 则对开发者更友好,同时基于 Koa 实现。
大佬们有没有好的建议,或者有其他更好的框架推荐一波。

47 回复

不要用 node


swg 还不如直接 gql 全套了

可以说说理由嘛?

express 基本不用看文档就可以直接写

同问! 为什么 ,你建议其他选项是什么?

java 感觉有点重了.
go 的选择还不错了.不知道入门成本高不高

个人不是太熟,不过感觉用 express 的比例大很多,而且虽然据说都是一个团队做的,而且 express 还早,但是好多人不买账对 koa

我建议 nest.js 相比 egg, 框架设计更灵活以及更标准, 基本是在复制 spring.
Express 现在的 commit 和维护情况未来还是比较担心的.

nest.js 生态成熟,typescript first,选他选他选他

就 koa,就可以了,然后练习下并发压测接口,做些扛压力的研究就好
进阶就学其它语言吧,本来不适合做底层的东西,没企业拿来做服务端,最多是中间间,

egg 问题在于它依然是 js,nest 问题和 angular 一样,用力过猛。

直接 Koa 简单解决就行了,缺啥自己写啥

希望复用 Egg.js 生态,又想用 TypeScript 的话,可以试试看 Midway ( https://github.com/midwayjs/midway)

前端的生态绕不开 node 吧,除非 deno 能正式崛起,不是单纯为了后端服务,而是为了包括但不限于中间层服务,打包工具等才学习的。

我忏悔,我还停留在传统的 restful 接口阶段,以后会试试这个。

你说得对。

好的呢,我了解下。主要是我没接触过 Java Spring,NestJS 一些借鉴的概念十分生涩。

express 相对比较轻量,不用担心,稳得很。Spring 因为我没学过,所以比较吃力。

技术不站队,是不可能的,没办法,在竞争中进步吧,时间是检验技术的唯一标准,然后你会发现,TMD 学不完,学不动了。

爱了爱了,我了解下这个。

只有一句说不要用什么的,直接忽略就行了。偏题又没任何参考作用。

稍稍用过 koa2 及 egg,感觉做产品是不够方便的。可能 nestjs 较好,以后兼学 spring 。
eggjs 的定位似乎是框架的基础,大概是这种说法吧。

没事,集思广益,最终我总要选一个深入了解,先大致了解下可能的技术选型的前景和优缺点。

好的,收到=。=

NestJS 确实足够出色,虽然很多来自 Spring 的概念我还不够深入,总觉得有点懵哈哈,当然它对 TS 的支持让我更有学习动力。egg 的话楼上有大佬建议更近一步的还有 midway,刚找了一下对 TS 也是很友好,有待研究。

既然 restful,何不学学 serverless ?

推荐 nestjs,写了几个程序,熟练之后还是非常方便的

我选择用 spring 。

只在微信小程序用过。

个人能力有限,暂时还造不动=。=

学习成本上 eggjs 用一天,nestjs 就得用一个星期。如果你想快速上手开发那就 eggjs,nestjs 太偏后端思维了。

好的,谢谢你的建议。

strapi 基于 koa 快速开发 api 用的 。可以玩一玩。

国内肯定很多人给你安利 egg,但是新项目最好选 nest.js + typescript ,最重要的其实是 typescript,至于 nest.js 一些花式炫技的用法别太当真就行了,java 那一套不是总是好的。

想自由一点直接基于 Express 就好了,现在 Node 也支持直接写 TS (安装 TS NOde )。
Nestjs 真的是非常不错,后台开发,微服务 全部考虑到了,如果有 ANgular 经验几乎不需要入门,拿来即用。

nestjs, 写起来很舒服

感谢你的建议。基于 egg 的 TS 有小伙伴分享了 midway,目前开始在熟悉和尝试 nestjs ,主要是部分概念和功能不太能对号入座,后续有余力我会再看看其他的。只能说趁着 TS 的浪潮滚滚而来赶紧乘风破浪。

+1,感谢建议。

所以你选了 nestjs 吗? 可以说说你最终选这个的理由吗? 我也想了解.

首先,你会 PHP 可以选 AdonisJs,会 Express / Java Spring / Angular 选 NestJS, 会 koa 或 egg 选 midwayjs 。其次,我是根据 star,生态,学习资料和小伙伴建议选的。其他的如 hapi 的没接触过所以放弃。你可以具體根據自己的學習路線合理規劃。

关于Node.js框架进阶选型的问题,以下是一些专业的分析和建议:

常见Node.js框架对比

  1. Express

    • 特点:简洁、灵活,适合构建各种规模的Web应用。
    • 示例代码:
      const express = require('express');
      const app = express();
      app.get('/hello', (req, res) => {
        res.send('Hello World!');
      });
      app.listen(3000);
      
  2. Koa

    • 特点:基于ES6的Generator和Async/Await特性,使得编写异步代码更加简单。
    • 示例代码:
      const Koa = require('koa');
      const app = new Koa();
      app.use(async ctx => {
        ctx.body = 'Hello World!';
      });
      app.listen(3000);
      
  3. Nest

    • 特点:基于TypeScript,提供了强大的依赖注入、模块化等特性。
    • 适用于构建大型、复杂的应用。

选型建议

在选择Node.js框架时,需要考虑项目的具体需求、团队的技术栈以及框架的社区支持和生态系统。如果项目需要快速迭代和部署,Express可能是一个更好的选择。如果追求代码的简洁和性能,可以考虑Koa。而如果正在构建大型、复杂的应用,并且熟悉Angular的开发方式,Nest将是一个很好的选择。

回到顶部