根据文件here 我应该能够修改请求对象。这是一个不适合我的例子:
var express = require('express');
var router = express.Router();
router.use(function (req, res, next) {
req.params.time = Date.now();
next();
});
router.get('/', function(req, res) {
console.log('Time: ', req.params.time);
res.send('Something out');
});
module.exports = router;
关于如何做到这一点的想法? (节点v6.4.0,npm 3.10.3,表达4.14.0)
答案 0 :(得分:1)
我会做出有根据的猜测并说Express使用请求GET参数重新填充req.params对象。相反,做这样的事情:
req.time = Date.now();
// snip
console.log(`Time: ${req.time}`);
答案 1 :(得分:1)
Params仅在路径定义具有参数时才可用 - 在您的示例中不是这种情况。
通常你会这样使用params:
router.get('/:id', function(req, res) {
console.log(req.params.id);
});
因此,添加参数time
将允许您修改它。
但我认为这不是你想要的 - 因为你必须改变URL。所以最好使用像
req.somevariable = variable;
使用next();
将其传递给下一个中间件