一直在用 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 了,主要看你们团队对于数据库设计和接口设计的理解,形成统一的规范就用什么都行。最后估计到某一天我也会按我们现有的方式把我们的扩展包进化成完整约定的另一套框架吧,哈哈。