Mongo使用req.query.id节点查找ID

时间:2018-06-22 01:23:26

标签: node.js mongodb express mongodb-query

我正在尝试使用req.query.id(我也使用过req.body)从网址中获取ID,但是它返回一个空数组,但是如果我将变量编号为1,则会得到包含数据的数组。 `

router.get('/:id', isLoggedIn, function(req, res) {
  MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    let id = req.query.id;
    db.collection("restaurant").find( { _id : id } ).toArray(function (err, result) {
      console.log(result);
      res.render('menu', {  restaurant: result });
});
  });
});

`

1 个答案:

答案 0 :(得分:1)

req.query用于获取? querystrings之后的url的querystring部分。要获取id的值,您应该使用req.params

const { id } = req.params;

而且您还必须将id转换为mongodb match查询所要使用的数字

{ _id: Number(id) }