expressjs路由级中间件使用问题

var express=require("express");
var app=express();
var router = express.Router();

router.use("/",function (req, res, next) {
    console.log("/");
    next();
});
router.use('/user', function (req, res) {
    console.log("/user");
});
app.use("/user",router);
app.listen(3000);

刚学express,想请问我在这里输入app.use("/user",router);为什么控制台输出的是“/”而不是“/user”?谢谢

阅读 2.8k
2 个回答

res.send调用的是ServerResponse.prototype.end(应该没记错吧),所以在完成的时候本次http就关闭了,后面的res.send("2")执行了但是不会再返回了

app.get挂载‘/’的路由只响应跟'/'精确匹配的GET请求。 而app.use挂载的'/'的路由响应所有以'/' 为起始路由的路由,且不限制HTTP访问的方法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题