Возврат обещания внутри схемы документа mongo db - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть следующая проблема: не могу прочитать свойство 'then' из undefined.Вот мой код:

commentSchema.methods.saveIfMovieExist = function () {
const Comment = this;
Movie.findOne({imdbID: Comment.imdbID}).then(movie => {
    if (!movie)
        return Promise.reject();

    return Comment.save();
}, err => {
    return Promise.reject();
}); };

И тогда у меня есть этот запрос:

router.post('/', (req, res) => {
const comment = new Comment({
    imdbID: req.body.imdbID,
    text: req.body.text
});

comment.saveIfMovieExist(comment).then(doc => {
    res.send(doc);
}, err => {
    res.status(400).send(err);
});
});

Я хотел бы проверить, существует ли фильм с imdbID и, если да, вставить комментарий в db.Я скучаю по чему-то в цепочке Обещаний, но не могу понять, что.Есть идеи ?

1 Ответ

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

вы не возвращаете функцию поиска, поэтому сначала верните ее, после чего вы можете вернуть обещание из нее.

commentSchema.methods.saveIfMovieExist = function () {
    const Comment = this;
    return Movie.findOne({imdbID: Comment.imdbID}).then(movie => {
        if (!movie)
            return Promise.reject();

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