【发布时间】:2018-05-20 06:49:11
【问题描述】:
我有这样的类别架构:
var category_article_Schema = new Schema({
"article_id": { type: String, required: false, unique: false },
"category": String,
"article": { type: mongoose.Schema.Types.ObjectId, ref: 'article'},
});
var category_article_Schema = mongoose.model('category_article_Schema', category_article_Schema);
module.exports = category_article_Schema;
文章架构:
var articleSchema = new Schema({
"title": { type: String, required: true, unique: false },
"details": String,
"username": { type: String, required: true, unique: false },
"postImageUrl": String,
"url": String,
"categories": [String],
"created_at": { type: Date, default: Date.now }
});
var article = mongoose.model('article', articleSchema);
module.exports = article;
当我尝试使用填充方法获取基于类别的文章时,出现异常:UnhandledPromiseRejectionWarning: Unhandled promise rejection
function getPostByCategory(req, res, next) {
category_article_model.find({category: req.params.name})
.populate('article')
.exec()
.then(function(err, articlesByCategory) {
if(err) throw err;
console.log(articlesByCategory);
})
}
首先,错误的原因可能是什么?为什么?我尝试寻找答案,但在每种情况下问题都不同。
【问题讨论】:
-
在
.then之后添加.catch,你没有处理异常,错误很明显。 -
这与猫鼬无关。如果你在 Promise 上下文中抛出错误(就像你做的那样),则需要调用
catch方法来处理它,否则错误将未处理。 -
@MarcosCasagrande 我添加了 catch 但未填充文章,而是返回了类别表。有什么想法吗?
-
@MarcosCasagrande 没有错误,但没有填充文章,而是返回了类别
-
@MarcosCasagrande
{ _id: 5b0008ce8787890004989df2, category: 'sample category', article_id: '5b0008ce8787890004989df1', __v: 0 } ]返回
标签: javascript node.js mongodb mongoose