为什么Koa每次请求被执行两次?
const Koa = require('koa')
const app = new Koa()
const index = async(ctx, next) => {
console.log('Hello world!')
await next()
ctx.body = 'Hello world!'
}
app.use(index);
app.listen(3000)
在我的终端上,我得到:
Hello world!
Hello world!
有什么想法吗?
答案 0 :(得分:4)
出现这种情况有两个原因:
首先,正如评论中已经提到的那样,浏览器也会触发对favicon.ico的请求 第二:有些浏览器做了prefentching,所以在你按下返回键之前,他们会在输入时预取url。
const Koa = require('koa')
const app = new Koa()
const index = async(ctx, next) => {
console.log('URL --> ' + ctx.request.url); // This logs out the requested route
console.log('Hello world!')
await next()
ctx.body = 'Hello world!'
}
app.use(index);
app.listen(3000)
我在您的代码中添加了一行,以便您可以查看浏览器要求的路由。这可能有助于确定问题的原因。