验证后恢复参数

时间:2014-11-09 18:24:32

标签: javascript node.js express

  1. 我使用" router.get"捕获匹配/ user / read /:user_id

  2. 的所有传入请求
  3. 在" router.param"中,我定义了一个新对象" user"具有属性名称和年龄

  4. 然后在" router.get"我使用req.res.user.name恢复该用户对象,以便将用户的名称作为回复发送回去。

  5. 根据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

1 个答案:

答案 0 :(得分:0)

你有正确的想法,但是你已经向后退了你的回调。

router.param('user_id', function(res, req, next, user_id) {

应该是

router.param('user_id', function(req, res, next, user_id) {

混合会导致您在response对象而不是request对象上设置已捕获的用户对象。