Koa每次请求被处决两次?

时间:2017-09-02 12:55:13

标签: node.js koa2

为什么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!

有什么想法吗?

1 个答案:

答案 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)

我在您的代码中添加了一行,以便您可以查看浏览器要求的路由。这可能有助于确定问题的原因。