我使用" router.get"捕获匹配/ user / read /:user_id
在" router.param"中,我定义了一个新对象" user"具有属性名称和年龄
然后在" router.get"我使用req.res.user.name恢复该用户对象,以便将用户的名称作为回复发送回去。
根据this tutorial,我应该可以使用req.user.name。但它没有用,所以我使用了req.res.user.name
这是我的问题:
是" res"在我的" req"对象是从中恢复用户的正确位置?换句话说,我错了或教程错了?
// route middleware to validate :id
router.param('user_id', function(res, req, next, user_id) {
// validation on id
var user = {
'name': 'Bob',
'age' : '3'
};
req.user = user;
next();
});
router.get('/user/read/:user_id', function(req, res) {
res.send({'user' : req.res.user.name});
});
更新
我使用快递4.10.x
答案 0 :(得分:0)
你有正确的想法,但是你已经向后退了你的回调。
router.param('user_id', function(res, req, next, user_id) {
应该是
router.param('user_id', function(req, res, next, user_id) {
混合会导致您在response
对象而不是request
对象上设置已捕获的用户对象。