gpt4 book ai didi

javascript - 为什么koa-router不能放在koa-cors之前?

转载 作者:行者123 更新时间:2023-11-30 09:33:46 24 4
gpt4 key购买 nike

我将 Koa 与 Node.js 8.1 结合使用。

今天发现在我的app.js中,如果按这个顺序写:

const Koa = require('koa')
var cors = require('koa-cors')
const app = new Koa()

app.use(cors(options))
app.use(router.routes())

cors 可以工作。我可以通过发送 origin 来验证结果在 Postman 中获取 header,并得到

Access-Control-Allow-Origin

作为响应头。

但是,如果我按这个顺序写:

const Koa = require('koa')
var cors = require('koa-cors')
const app = new Koa()

app.use(router.routes())
app.use(cors(options))

cors 将无法正常工作。

这里有什么问题?我错过了什么吗?

最佳答案

如果您知道 app.use() 的作用,您就会明白发生了什么。

use() 函数的作用是:

use(fn) {
this.middleware.push(fn);
return this;
}

因此,您的代码顺序将影响请求处理过程。它会先将你的请求路由到你的业务代码并响应,cors 不会被执行。

通常,app.use(router.routes()) 应该是最后一个中间件。

关于javascript - 为什么koa-router不能放在koa-cors之前?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44775299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com