javascript - 在 mongo db 文档模式中返回承诺
问题描述
我有以下问题:无法读取未定义的属性“then”。这是我的代码:
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 插入评论。我在链接 Promises 时错过了某些东西,但不知道是什么。有任何想法吗 ?
解决方案
你没有返回 find 函数,所以首先返回它,然后你可以从中返回 promise。
commentSchema.methods.saveIfMovieExist = function () {
const Comment = this;
return Movie.findOne({imdbID: Comment.imdbID}).then(movie => {
if (!movie)
return Promise.reject();
return Comment.save();
})
};
推荐阅读
- sas - 如果表为空,如何获得等于零的行数而不是什么都没有是SAS
- vue.js - 在 vue 组件包 (npm) 中加载样式
- vue.js - vue.js中如何根据类型将js函数拆分为多个文件
- java - Kafka 不会从 PEM 证书开始
- docker - 调用期间背书失败:“模拟错误:错误启动容器:\”链代码\“在$PATH中找不到可执行文件:未知”
- docker - 在 kubernetes 中都使用 mongoose 连接到 mongodb
- c# - 取回添加的位数
- bash - 如何将错误日志添加到 bash 脚本,这将保存脚本运行期间的所有错误
- python - 计算给定角度的余弦,舍入结果并打印
- python - 如何在 Python 中将第一行与每个剩余的行连接起来,将第二行与每个剩余行的下面连接 7 个周期?