如何解决尽管有记录,Mongoose findById回调返回null
我对此感到困惑。如果记录存在,则err
有效。相反,如果记录不存在,则err
无效。
但是,尽管记录存在于数据库中,article
始终为空。
router.get("/:id",function (req,res) {
Article.findById(req.params.id,function(err,article) {
if (err) {
res.send(`Error: ${err}`);
} else {
//Print out "null"
console.log(article);
//Error occur
Article.updateOne({_id: req.params.id},{$set:{views: article.views + 1}});
res.render("showArticle",{ article: article});
}
});
});
商品模型:
var mongoose = require("mongoose");
const articleSchema = new mongoose.Schema({
title: {
type: String,required: true
},description: {
type: String,required: false
},content: {
type: String,createdDate: {
type: Date,default: Date.now
},views: {
type: Number,default: 0
}
});
module.exports = mongoose.model("Article",articleSchema);
解决方法
搜索了几个小时之后,好吧...这对我来说很愚蠢。 我没有在mongoose.model中提供第三个参数。
更改:
module.exports = mongoose.model("Article",articleSchema);
收件人
module.exports = mongoose.model("Article",articleSchema,"Article");
我发现mongoose.prototype.model如果没有集合名称,则会在模型名称的末尾自动添加一个“ s”,这意味着Article
集合将被命名为{{1 }}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。