能否举个express koa中间件的例子呢?
在学习express和koa中间件的时候,我自己一直按照洋葱模型来理解。但是理论上他们是不一样的。
//express版本
var express = require('express');
var app = express();
app.use((req, res, next) => {
setTimeout(() => {
console.log('start1')
})
next();
console.log('end1')
})
app.use((req, res, next) => {
console.log('start2')
next();
console.log('end2');
})
app.use((req, res, next) => {
console.log('start3');
next();
console.log('end3');
})
app.get('/', function (req, res) {
console.log('before')
res.send('Hello World!');
console.log('after')
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
koa版本
const Koa = require('koa');
const app = new Koa();
app.use(async (ctx, next) => {
await new Promise((resolve, reject) => {
setTimeout(() => {
console.log('start1')
resolve()
})
})
await next();
console.log('end1')
})
app.use(async (ctx, next) => {
console.log('start2')
await next();
console.log('end2');
})
app.use(async (ctx, next) => {
console.log('start3');
await next();
console.log('end3');
})
app.use(ctx => {
console.log('before');
ctx.body = 'Hello Koa';
console.log('after');
});
app.listen(3001)
现在的问题是,如何修改上面的代码,就能明显区分出express和koa中间件作用机制的不同?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的示例代码本身不就体现出来两个的区别了吗