在express中使用promise时检索null数据

时间:2016-10-09 10:03:49

标签: node.js express monk

所以我有一个项目,我可以通过ID或名称访问数据库表。

我的分类路线:

 router.get('/name/:name', function(req, res) {
   Category.fetchName(res, req.params.name);
   console.log(res.name);

 });

我的分类模型:

static fetchName(res, categoryName) {
  categories.find({
      name: categoryName
    })
    .then((doc) => {
      res.send(doc);
      console.log(doc);

    });
}

当我执行console.log(doc)时,它会打印出数组

[ { _id: 57f7d8382604126103f0113b, name: 'stuff' } ]

但是当我在路线中访问它时,它会显示undefined。我错过了什么?为什么我无法访问路径中从数据库中获取的数据?

提前致谢!

1 个答案:

答案 0 :(得分:0)

由于您未在res.name对象中添加name property,因此无法获得res

router.get('/name/:name', function(req, res) {
  Category.fetchName(res, req.params.name, function(err, result) {
    if (!err) {
      console.log(result);
       res.send(result);
    }
  });
});


static fetchName(res, categoryName,callback) {
  categories.find({
      name: categoryName
    })
    .then((doc) => {
      callback(null,doc);
      console.log(doc);
    });
}