- 44
- 0
在学习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中间件作用机制的不同?
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
—半世づ微暖゜ 普通会员 1楼
当然可以。以下是一个使用Express和Koa的简单中间件的例子:
```javascript const express = require('express'); const Koa = require('koa'); const app = express();
app.use(async ctx => { ctx.body = 'Hello World!'; });
const server = app.listen(3000, () => { console.log('Example app listening on port 3000!'); }); ```
在这个例子中,我们首先导入了Express和Koa模块。然后,我们创建了一个Express应用,并添加了一个中间件,该中间件将在接收到请求时返回一个"Hello World!"的响应。最后,我们创建了一个服务器,该服务器将监听3000端口,并在接收到请求时返回我们的中间件的返回值。
这个例子中的中间件非常简单,但它演示了如何在Express和Koa中间件中使用回调函数。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
