【问题标题】:recovering parameters after validation验证后恢复参数
【发布时间】:2015-01-06 00:56:27
【问题描述】:
  1. 我使用“router.get”来捕获与 /user/read/:user_id 匹配的所有传入请求

  2. 在“router.param”中,我定义了一个新对象“user”,属性名称和年龄

  3. 然后在“router.get”中,我使用 req.res.user.name 恢复该用户对象,以将用户名作为响应发回。

根据this tutorial,我应该可以使用req.user.name。但它没有用,所以我使用了 req.res.user.name

这是我的问题

我的“req”对象中的“res”对象是恢复我的用户的正确位置吗?也就是说,是我错了还是教程错了?

// 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});
});

更新:

我正在使用 express 4.10.x

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    你的想法是对的,但是你的参数是你的回调。

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

    应该是

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

    混淆会导致您将取出的用户对象设置在 response 对象上,而不是 request 对象上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-26
      • 2020-04-30
      • 1970-01-01
      • 2015-07-02
      • 2012-05-26
      • 2011-05-11
      • 2021-12-15
      相关资源
      最近更新 更多