javascript - 为什么 `app.get(' *')`总是被触发?

标签 javascript node.js express

考虑这个小应用程序:

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:3000localhost:3000/json 时,我都可以从服务器日志中看到星号 * 路线也会被触发。如果改成 app.get("/*")

依然如此

这是为什么呢?我以为 res.sendres.json 停止执行。

最佳答案

当您使用浏览器请求某些内容时,它会自动尝试请求网站图标。由于您的服务器没有为网站图标定义路由,因此它会转到 * 路由,从而导致这种困惑。

关于javascript - 为什么 `app.get(' *')`总是被触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34754940/

相关文章:

javascript - Nodejs 后端与 VueJS 前端通信

javascript - NodeJS : Async comportment not wanted

node.js - fatal error : spawn ENOENT node. js 和 grunt

sql-server - 像.net Entity Framework 这样的 Node JS 的 ORM?

javascript - 如何使用 Express 在 node.js 中关闭 HTTP 连接

javascript - 从便士更改计算器 - js

javascript - Dojo 如何解析整个 JsonRestStore(JSON 到字符串)

javascript - 解析 JSON - Javascript - 未定义

javascript - 在使用 html 代码通过 id 自动定位元素以发送键时,某些值在站点的每次刷新中都会发生变化

node.js - 如何使用 Node js 获取使用我们网站的客户端 IP 地址?