.findByIdAndRemove не является функцией - PullRequest
0 голосов
/ 03 сентября 2018

Рассмотрим следующий код:

app.delete('/customer/:id',(req,res) =>{
    
    var idRemove = String(req.params.id);
    console.log(idRemove);//this part is working 
    var user = new Customers(req.body);
             console.log(user)//this part is working 

            user.findByIdAndRemove({id :idRemove},(err, doc) => {
                if (!err)
                    res.status(200).send(doc);
                else {
                    res.status(500).send(err)
//showing error here telling me that user.findByIdAndRemove is not a function
                }

            })

});

Я получаю сообщение об ошибке «.findByIdAndRemove не является функцией».

Как я могу предотвратить эту ошибку?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

В mongoDB _id - это зарезервированное ключевое слово для идентификатора конкретного элемента в базе данных. Я считаю, что вы должны изменить id на _id в вашем коде. Например:

user.findByIdAndRemove({_id :idRemove},(err, doc) =>
0 голосов
/ 03 сентября 2018

Глядя на документы https://mongoosejs.com/docs/api.html

findByIdAndRemove не относится к прототипу, я думаю, это означает, что они намереваются получить прямой доступ к модели:

, например

const Example = mongoose.model('Example',
  new mongoose.Schema({
    description: String
  })
);

Example.findByIdAndRemove({}, (err, doc) => {})

Это имеет смысл, поскольку было бы немного неудобно использовать конкретный экземпляр DTO для доступа / изменения другого экземпляра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...