express和koa的middleware没区别吧?
两者无论写法,还是执行顺序,也没啥区别啊,区别是啥???
var app = require('express')();
app.use(function myMiddleware(req, res, next) {
res.write('Hello world.');
next();
});
app.use(function mySecondMiddleware(req, res) {
res.write('\nI am a second middleware.');
res.end();
});
var app = require('koa')();
app.use(function* myMiddleware(next) {
this.response.body = 'Hello world.';
yield next;
});
app.use(function* mySecondMiddleware() {
this.response.body += '\nI am a second middleware.';
});
7 回复
koa不建议
app.use(function* mySecondMiddleware() {
this.response.body += '\nI am a second middleware.';
});
吧?
简单来说,用koa2,async/await,让你代码量少很多!本人已经大量实践这个了
看这个帖子,https://cnodejs.org/topic/5813d794b37ee8fb339788f1 ,但不推荐这样玩,1楼说的对,generator已经很少了,koa2 推荐async /await + promise
两种中间件模型不一样,express只经过一次,koa是洋葱模型,在yield next之后还能加逻辑。express得靠hack。 自豪地采用 CNodeJS ionic
@rwing 保持编程风格统一…这是第一反应… async/await友好好用
@rwing 最关键就是promise的支持啊. 当然了, 我也不喜欢koa2这种过度封装的模式. 你要是感兴趣, 也可以看看这个use-server,兼容express,支持promise
koa太轻,要自己选一堆东西,选择困难症患者表示不舒服。