Koa 每个请求被执行两次?

Koa is being executed twice per request?

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!

有什么想法吗?

发生这种情况的原因有两个:

首先 - 正如评论中已经提到的,浏览器也会触发对 favicon.ico 的请求 第二:有些浏览器会进行预取,所以在您按下 return 键之前,它们会在输入时预取 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)

我在你的代码中添加了一行,这样你就可以看到你的浏览器请求了哪些路由。这可能有助于确定问题的原因。