是否有任何原因导致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!

有任何想法吗?

最佳答案

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

第一ist-正如评论中已经提到的,浏览器还会触发对favicon.ico的请求
第二:某些浏览器会进行预输入,因此,甚至在您按回车键之前,它们都会在输入时预提取网址。

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)

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

关于node.js - 每个请求两次执行Koa吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46014028/

10-09 21:30