为什么总是触发“app.get('*')”
Why is `app.get('*')` always triggered?
考虑一下这个小应用程序:
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
停止了执行。
当你用浏览器请求某个东西时,它会自动尝试请求一个favicon。由于您的服务器没有为favicon定义路由,因此会转到*
路由,从而导致这种混乱。
相关文章:
- 等待 MongoDB findOne 回调完成,然后再完成 app.get()
- 表达快乐.js Restfy Koa app.listen() 和 app.get() 如何工作
- 如何避免为我的每个html文件添加ExpressJS app.get()
- 如何在express和parse中使用app.get中的app.locals
- 什么's将数组传递给app.get()的第一个参数的替换项
- 在连接DB - NodeJs的函数中使用app.get
- 如何将所选复选框的值发送到 app.get 路由
- NodeJS : app.get() 不像我所说的那样运行
- 为什么我不能从节点和 express.js 中的 app.get 函数中提取回调
- app.get and app.post get value in node.js
- Express app.get() equivalent in CasperJS
- Node.js Express app.get:浏览器想要打开链接
- Express Middleware为所有app.get()填充Jade变量
- 为什么总是触发“app.get('*')”
- ExpressJS app.use("/" router) router.get("/&q
- 带有查询参数的节点js-app.get方法-内部服务器错误
- app.get在Node/Express中返回undefined
- app.get 不适用于基本路由
- Node.js Express app.get()没有'不在cron中工作
- 使用app.Get(节点)获取并渲染一些文件