GET请求返回null的特定id

时间:2017-06-05 16:45:10

标签: node.js mongodb express

我尝试使用express和mongodb构建一个简单的CRUD应用程序。我对所有数据库条目的GET请求正在运行,我的POST请求正在运行,但我似乎无法通过单个条目的GET请求来解决问题。

Server.js GET请求:

app.get('/api/:id', function (req, res) {
  var id = req.params.id;

  db.collection('api').findOne({_id: id}, (err, result) => {
    if (err){
      res.sendStatus(404);
      return console.log(err);
    }
    res.redirect('/');
    return console.log(result);

  });

});

当我输入' url / api / 593555074696601afa192d7f'这是我知道的ID存在,console.log返回null,我不确定我是否做错了什么?

1 个答案:

答案 0 :(得分:0)

您应该在查询中传递ObjectID个实例。

let ObjectID = require("mongodb").ObjectID;

app.get('/api/:id', function (req, res) {
  var id = req.params.id;

  db.collection('api').findOne({_id: ObjectID(id)}, (err, result) => {
    if (err){
      res.sendStatus(404);
      return console.log(err);
    }
    res.redirect('/');
    return console.log(result);

  });

});

尝试Mongoose。如果你的模型变得复杂,它可能会有所帮助。