考虑这个小应用程序:
var express = require("express");
var app = express();
app.get("/json", function(req, res){
console.log("JSON route");
res.json({foo: "bar"});
});
app.get("/", function(req, res){
console.log("Slash route");
res.send("Hello");
});
app.get("*", function(req, res){
console.log("Star route");
res.redirect("/");
});
app.listen(3000, function(){
console.log("Listening.");
});
每当我在浏览器中访问 localhost:3000
或 localhost:3000/json
时,我都可以从服务器日志中看到星号 *
路线也会被触发。如果改成 app.get("/*")
这是为什么呢?我以为 res.send
和 res.json
停止执行。
最佳答案
当您使用浏览器请求某些内容时,它会自动尝试请求网站图标。由于您的服务器没有为网站图标定义路由,因此它会转到 *
路由,从而导致这种困惑。
关于javascript - 为什么 `app.get(' *')`总是被触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34754940/