Nodejs后端开发一般用什么框架
Nodejs后端开发一般用什么框架
想做个小东西,也就写一些接口,不知道现在还流不流行 express 和 koa 了
Mark 一哈 我也准备搞搞这个
之前面过的几家打听都是 koa,不知道是不是偏差
我个人站用的是 koa2,现在培训班也讲 egg.js
流行吧,我们公司还是 express
egg,midway
nestjs
express
express koa egg
express
egg.js
egg 吧…大厂维护比较好些
egg.js 吧,大厂后面好乘凉,如果选用国外的也行,遇到问题,看你英文水平了。
我最近在用 loopback,觉得还不错。
koa2
必须 nest,你对比一下 egg nest 等框架的星数就知道了。
egg (koa)
restify
一直在用 express,其实比较想迁移到 koa 的,毕竟多了原生异步中间件和更自由执行中间件顺序的特性,但想想其实大多数情况这个特性也没那么必要,除此以外 (req, res, next) 和 ({ req, res }) 真没多大区别。据说 express v5 以后也会原生支持异步中间件,只是 tj 大神离开 Node.js 社区后一直是 alpha 版不知道什么时候升。另外就是我一直懒得写一个 koa 下和 https://github.com/mytharcher/rainbow 一样好用的路由自动配置中间件,所以就一直没迁😂。
也看过 eggjs 和 nestjs,不想用的原因还是一样,实在不想这么麻烦的定义 controller 和路由,我个人认为天生这俩东西就应该绑定到一起,没必要写 controller 的时候还要再去定义一次路径,否则每次要找定义了什么路径还要去文件里面找。
其实还是因为 express 本身足够灵活,ORM 层 sequelize 也比较成熟了,所以针对很多简单的 RESTful 应用,最重要的就是设计好数据库,其他常用的东西简单封装一下就能用了,完全没有那么麻烦。尤其是如果对 RESTful 理解比较深的话,总是能总结出一些统一的设计范式,自然的就形成约定了。比如我们团队写了好几个 Node.js 后端项目之后,逐渐的就总结出一些常规且固定的用法,形成了一套针对 express 的基础扩展包 https://github.com/mytharcher/express-utils。这里其实已经无关 express 还是 koa 了,主要看你们团队对于数据库设计和接口设计的理解,形成统一的规范就用什么都行。最后估计到某一天我也会按我们现有的方式把我们的扩展包进化成完整约定的另一套框架吧,哈哈。
nestjs 推荐一下
扩展包链接(上面忘加空格识别有问题): https://github.com/mytharcher/express-utils
egg
express,koa 只用过 1,egg 也不错
js egg
ts nest
egg-js
我们以前用 koa2, 现在使用函数云如 AWS Lambda, 就不用框架了.
框架只是给个规范, 如果团队已经形成一套规范, 框架什么的就很随意了.
当然, 库是肯定要用的.
restify
必须 ts nest,一本正经的后端
nestjs
express, koa 只能算是类库,eggjs 算是框架。
koa2
多谢老哥
老外已经开始流行 serverless 了,可惜 AWS 进不了中国
用 koa2 写了个学习项目: https://github.com/LFB/nodejs-koa-blog 欢迎一起学习~
推荐 egg.js
ts
最近用 net 写了一个 挺好用
nestjs
我的博客服务端用的 koa2 准备用 nestjs 改造下,主要是想学习使用 ts 哈哈
可以考虑下 ThinkJS,基于 Koa2 的,文件即路由 ~
推荐 nestjs,感觉还是在写 java …
只推荐 nest 或者轻量级的 express .
egg 什么的一边去吧
nest,ts 一把梭
daruk 试一试
轻量一点的 koa 和 express,别用 egg
koa2
不喜欢 egg 那种大集合
果断 koa2,自己想怎么改就怎么改
eggjs
nest.js 必须这个
- Express 生态圈比较成熟,可用的中间件和设施也是最多的,但是比较臃肿而且最佳实践见仁见智,算是个比较中庸的选择。大家也比较熟就不多说了。
2. Koa2 是我比较喜欢的设计理念,相对小巧,算是只有主菜,套餐自由组合。值得一提的是很多时候不需要那么多中间件比如在微服务或是 Serverless 上写东西更值得推荐,自由度很高。可惜社区太薄弱,参与贡献的人很少,很多设施更新很慢。如果你有一些很酷的想法或者想为 NodeJS HTTP 框架添加一些东西,为这款源码简短的框架写周边服务是再好不过的了。
3. Fastify 是在性能上更优秀的库。我只在写一些极小的逻辑时才会用,基本只会在 Serverless 上使用。不过它的设计很巧妙,源码可以多读,给了我很大启发。它性能真的很高(作为 http 服务来说),如果你很看重性能可以尝试。
4. Sails 是我早期在项目中用过最多的框架。Sails 是仿造 Rails 的 NodeJS 实现,总体来说算是实现了 Rails 的大部分设计,风格上保持主厨精选和约定优于配置,在这个框架下工作会非常的省心,效率非常高且优雅。缺陷也很明显:waterline
速度被人诟病已久,而且优于要做很多活所以性能较差,但大约和 Express 处于一个量级。很多地方源码的实现很脏,和 TS 结合不算友好,近年来的更新有些慢。如果你喜欢 magic 喜欢 ruby 风格可以试试。
5. NestJS 本质上是一个更加全面的 routing-controller,设计上也大幅度借鉴了 Angular 和 routing-controller,不过只是一个骨架,可以结合 Express 或 Fastify,算是目前和 TS 结合的最好的框架。缺陷还是在 TS 的 ORM 数据验证这一块,由于没有自己实现所以推荐了 routing-controller 作者写的 class-validate,这个库的更新很慢而且问题比较多而且使用起来堆栈很高不是很理想,另外此框架是 IoC 类型所以代码量稍高,不过如果你喜欢大而全喜欢 TS 又喜欢写测试,这个框架是最推荐使用的。
6. zeit/micro 是我见过 NodeJS 中最微型 Http 库,麻雀虽小五脏俱全,也受到很多人的热捧。非常推荐在微服务中使用,以前是 zeit 在 Serverless 上的首选,现在优于 now 的发展当然不需要了,也一直是我的最爱,代码量极低、小巧、高性能、设计优雅。社区有不少与此相关的周边库,作者也更新的快,非常值得信赖。不足的地方是文档少 (功能少所以文档少),如果没有一定的 NodeJS 基础会有些云里雾里。
7. Hapi、Restify 等等这几个是我比较讨厌的,就不细说了,免得它们又有新用户。
综合评价:
性能偏执压测之子请选择 Fastify,
宗教信徒快乐编程请选择 Sails,
大道至简高人雅士请选择 zeit/micro,
社区中坚力求变法请选择 Koa2,
遵循法度统筹兼顾请选择 NestJS,
以上都不是没有特别喜好请选择 Express。
nestjs,只用过这个,搭配 angular 使用很省心
可以的老哥,多谢建议
nest nust next
中庸的角度,Express 是首选,生态圈成熟,各种需要的东西都能找到,自己装配。
快捷的,面向企业程序,Microservice:Nestjs,loopback,功能全面,拿来就用。
没人用 thinkjs 么?
赞
赞
没人用 graphql 吗
iijs,我正在开发一个自己的 mvc 框架
在Node.js后端开发中,常用的框架有多个,每个框架都有其独特的优势和适用场景。以下是一些主流的Node.js后端开发框架:
-
Express:
- 简洁而灵活的Node.js Web应用框架。
- 提供了一系列强大特性帮助创建各种Web应用,以及丰富的HTTP工具。
- 使用Express可以快速地搭建一个完整功能的网站。
示例代码:
const express = require('express'); const app = express(); const PORT = 3000; app.get('/api/hello', (req, res) => { res.send('Hello from Node.js!'); }); app.listen(PORT, () => { console.log(`Server is running on http://localhost:${PORT}`); });
-
Nest:
- 一个用于构建高效、可扩展的Node.js服务器端应用程序的框架。
- 底层HTTP平台默认基于Express实现。
- 提供完整的解决方案,从代码到模块拆分到微服务模型。
-
Koa:
- 开源的Node web框架。
- 用Generator来实现中间件的流程控制,用try/catch来增强异常处理。
- 体积小,只打包了一些必要的功能。
-
Sails:
- 基于Node.js的MVC框架。
- 支持多种关系型数据库和NoSQL。
- 提供了建立任何规模的Web应用所需要的所有功能。
这些框架各有千秋,开发者可以根据项目需求和个人偏好选择合适的框架进行开发。