昨天写了个 Nodejs 小项目,当初技术选型时有点迷茫不知道选哪个框架,所以今天就有这篇博文了。
关于这三个框架的性能/优缺点,这里就不再赘述了,仅从个人角度出发。
省流总结:选 Express
准没错,够简单快速。
Express
Express:如果你需要在短时间内开发一个项目,那你选 Express
准没错,你无须考虑过多内容,直接按照需求编写代码,语法也很好理解。
非常简单明了的请求格式,没有过多花里胡哨的东西,大道至简,因此我昨天的项目就选择了这个框架,因为我需要在短时间内完成项目,怎么简单怎么来。
router.get("/", function (req, res, next) {
res.render("index", { title: "Express" });
});
Koa2
洋葱模型,一个在 Express 基础上结合了 async/await
的框架。
你需要清楚你是否需要 洋葱模型 在决定是否使用 Koa2
,否则我建议使用 Express
。
因为 Koa
社区文章相比 Express
会少很多,你在使用的时候可能会遇到不便。
这个案例就很好的把洋葱模型给展示出来
const Koa = require("koa");
const app = new Koa();
const mid1 = () => async (ctx, next) => {
ctx.body = `<h3>请求 >>> 第一层中间件</h3>`;
await next();
ctx.body += `<h3>响应 <<< 第一层中间件</h3>`;
};
const mid2 = () => async (ctx, next) => {
ctx.body += `<h3>请求 >>> 第二层中间件</h3>`;
await next();
ctx.body += `<h3>响应 <<< 第二层中间件</h3>`;
};
app.use(mid1());
app.use(mid2());
app.use(async (ctx, next) => {
ctx.body += `<p style="color: red">Koa 核心处理业务</p>`;
});
app.listen(6060);
// 请求 >>> 第一层中间件
// 请求 >>> 第二层中间件
// Koa 核心处理业务
// 响应 <<< 第二层中间件
// 响应 <<< 第一层中间件
Nestjs
一个非常重的 NodeJS+TypeScript
框架,我有个项目就是用 NestJS
写的,依赖项就足足 40 个。
一个模块的构成再也不像前面的那样单文件,而是 3 个文件 module
、controller
、service
,具体文件的内容这里就不赘述了,看我之前的文章。
我对这框架的评价是,Nodejs 中的 Spring Boot
,如果你有时间慢慢编写 TypeScript
规范,可以选它,如果你不想写规范/接口,那就别选它了,老老实实用 Express
吧。
如果是个人开发我建议别碰,有这时间不如去玩 Spring Boot
。