objectId.isValid不是发出API请求的函数

时间:2018-03-14 21:42:30

标签: javascript node.js mongodb api

我正在尝试在server.js中制作单独的API获取请求,但我没有得到所需的结果。我在Postman中得到的错误如下:

objectId.isValid不是发出API请求的函数

这是server.js的代码:

var express=require('express');
var bodyParser=require('body-parser');
var ObjectID = require('mongodb');
var mongoose=require('./db/mongoose');
var Todo=require('./models/todo');
var User=require('./models/user');
var app = express();
app.get('/todos/:id', (req, res) => {
  var id=req.params.id;

  if (!ObjectID.isValid(id)) {
    return res.status(404).send();
  }

  Todo.findById(id).then((todo) => {
    if (!todo) {
      return res.status(404).send();
    }

    res.send({todo});
  }).catch((e) => {
    res.status(400).send();
  });
});

1 个答案:

答案 0 :(得分:0)

注意:评论中回答了这个问题。写一个详细的答案来帮助完成这篇文章。

ObjectIDrequire('mongodb')返回的对象的属性,这就是var ObjectID = require('mongodb').ObjectID正常工作的原因。

如果切换到ES6,对象解构分配会很方便。

const { ObjectID } = require('mongodb');