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