在 Express 中间件内部的调用链中,app.param 方法是否总是在 app.use 之前被调用?
我用这个程序进行了测试,用 express 4.10.2改变了app.usevs的顺序app.param。param 总是首先运行,这是有道理的,因为路由处理程序希望能够做到,req.params.foo并且为了使其工作,需要运行 param 处理程序。
var express = require('express');
var app = express();
app.use("/:file", function (req, res) {
console.log("@bug route", req.params.file);
res.send();
});
app.param("file", function (req, res, next, val) {
console.log("@bug param", val);
next();
});
app.listen(3003);
Run Code Online (Sandbox Code Playgroud)
运行它并测试,curl localhost:3003/foo你会得到输出:
@bug param foo
@bug route foo
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4269 次 |
| 最近记录: |