我的中间件被多次调用,但我不明白为什么。这是一个非常短的代码,而且非常令人沮丧,因为我刚刚开始学习 Express 和 Node。我不明白为什么它甚至进入第二个中间件,我没有使用next(),我使用了res.send()。
我正在参加在线课程,它的代码与描述的相同。我也搜索了 stackoverflow 但没有任何帮助。我确实读过一些关于第二次调用它的图标的内容,但我不明白为什么它被多次调用。
const express = require("express");
const app = express();
app.use("/", (req, res, next) => {
console.log("This always runs!");
next();
});
app.use("/add-product", (req, res, next) => {
console.log("In first middleware!");
res.send("<h1>Add Product</h1>");
});
app.use("/", (req, res, next) => {
console.log("In second middleware!");
res.send("<h1>Hello from express!</h1>");
});
app.listen(3000);
Run Code Online (Sandbox Code Playgroud)
如果我打开,localhost:3000/add-product我应该进入控制台:
This always runs!
In first middleware!
Run Code Online (Sandbox Code Playgroud)
但我实际上得到:
This always runs!
In first middleware!
This always runs!
In second middleware!
This always …Run Code Online (Sandbox Code Playgroud)