Node.js mongoose中的保存功能不起作用
我有一个模式,当我试图更新数据库中的数组时,文件没有得到更新,数组总是空的。 当我在更新后打印文章时,它会打印带有我刚刚添加的一条注释的数组,但它不会保存在数据库中。 很可能是我没有将更新的文件正确保存到数据库中 这是我对你的评论Node.js mongoose中的保存功能不起作用,node.js,mongodb,mongoose,backend,mongoose-schema,Node.js,Mongodb,Mongoose,Backend,Mongoose Schema,我有一个模式,当我试图更新数据库中的数组时,文件没有得到更新,数组总是空的。 当我在更新后打印文章时,它会打印带有我刚刚添加的一条注释的数组,但它不会保存在数据库中。 很可能是我没有将更新的文件正确保存到数据库中 这是我对你的评论 const Comment = require('../models/comment'); const Post = require('../models/post'); module.exports.create = function(req, res){
const Comment = require('../models/comment');
const Post = require('../models/post');
module.exports.create = function(req, res){
Post.findById(req.body.postId, (err, post) => {
//if the post is found
if(post){
Comment.create({
content: req.body.comment,
user: req.user._id,
post: req.body.postId
},
(err, currcomment) => {
if(err)
console.log(err);
post.comment.push(currcomment);
post.markModified('comment');
post.save(function(err, doc) {
if (err) return console.error(err);
console.log("Document inserted succussfully!");
});
console.log(post);
return res.redirect('/')
}
);
}
else{
return res.redirect('/')
}
})
};
这是我的评论模式
const mongoose = require('mongoose');
const commentSchema = new mongoose.Schema(
{
content: {
type: String,
required: true
},
//comment belongs to a user
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
post: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Post'
}
},
{timestamps: true}
);
const Comment = mongoose.model('Comment', commentSchema);
module.exports = Comment;
post.save()发出此警告/错误
Error: Post validation failed: comment: Cast to [undefined] failed for value "[{"_id":"5fc0dfec4c87ad723b06d6eb","content":"sadfasdf","user":"5fba3cbd01b2310b7aba868b","post":"5fc0de91fc0ca96fd0b331df","createdAt":"2020-11-27T11:15:56.991Z","updatedAt":"2020-11-27T11:15:56.991Z","__v":0}]" at path "comment"
at ValidationError.inspect (/home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/mongoose/lib/error/validation.js:47:26)
at formatValue (internal/util/inspect.js:491:31)
at inspect (internal/util/inspect.js:189:10)
at Object.formatWithOptions (util.js:84:12)
at Console.(anonymous function) (console.js:196:15)
at Console.warn (console.js:213:31)
at /home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/controllers/comment_controller.js:19:45
at /home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/mongoose/lib/model.js:4846:16
at /home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/mongoose/lib/helpers/promiseOrCallback.js:16:11
at /home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/mongoose/lib/model.js:4869:21
at $__save.error (/home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/mongoose/lib/model.js:500:16)
at /home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/kareem/index.js:246:48
at next (/home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/kareem/index.js:167:27)
at next (/home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/kareem/index.js:169:9)
at Kareem.execPost (/home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/kareem/index.js:217:3)
at _handleWrapError (/home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/kareem/index.js:245:21)
errors:
{ comment:
{ ValidatorError: Cast to [undefined] failed for value "[{"_id":"5fc0dfec4c87ad723b06d6eb","content":"sadfasdf","user":"5fba3cbd01b2310b7aba868b","post":"5fc0de91fc0ca96fd0b331df","createdAt":"2020-11-27T11:15:56.991Z","updatedAt":"2020-11-27T11:15:56.991Z","__v":0}]" at path "comment"
at _init (/home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/mongoose/lib/document.js:691:37)
at init (/home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/mongoose/lib/document.js:657:5)
at model.Document.$__init (/home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/mongoose/lib/document.js:586:3)
at model.syncWrapper [as $__init] (/home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/kareem/index.js:234:23)
at model.Document.init (/home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/mongoose/lib/document.js:545:8)
at completeOne (/home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/mongoose/lib/query.js:2844:12)
at model.Query.Query._completeOne (/home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/mongoose/lib/query.js:2073:7)
at Immediate.Query.base.findOne.call (/home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/mongoose/lib/query.js:2117:10)
at Immediate.<anonymous> (/home/yuganksingh/me/Learn Full stack WEb-Dev/CODING NINJAS/Backend/instaKiloGram/node_modules/mquery/lib/utils.js:116:16)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
properties: [Object],
kind: 'cast',
path: 'comment',
value:
'[{"_id":"5fc0dfec4c87ad723b06d6eb","content":"sadfasdf","user":"5fba3cbd01b2310b7aba868b","post":"5fc0de91fc0ca96fd0b331df","createdAt":"2020-11-27T11:15:56.991Z","updatedAt":"2020-11-27T11:15:56.991Z","__v":0}]',
reason: [CastError] } },
_message: 'Post validation failed' }
错误:后期验证失败:注释:对值“[{”\u id:“5fc0dfec4c87ad723b06d6eb”,“内容”:“sadfasdf”,“用户”:“5FBA3CBD0B2310B7ABA868B”,“Post:“5fc0de91fc0ca96fd0b331df”,“createdAt:“2020-11-27T11:15:56.991Z”,“更新日期”:“2020-11-27T11:15:56.991Z”,“注释”路径处的“\u v:”0}”
在ValidationError.inspect(/home/yuganksingh/me/Learn Full stack WEb Dev/CODING NINJAS/Backend/instakigg/node_modules/mongoose/lib/error/validation.js:47:26)
at formatValue(internal/util/inspect.js:491:31)
检查时(内部/util/inspect.js:189:10)
位于Object.formatWithOptions(util.js:84:12)
控制台上。(匿名函数)(Console.js:196:15)
在Console.warn(Console.js:213:31)
在/home/yuganksingh/me/Learn-Full-stack-WEb-Dev/CODING-NINJAS/Backend/instakiggle/controllers/comment\u-controller.js:19:45
在/home/yuganksingh/me/Learn-Full-stack-WEb-Dev/CODING-NINJAS/Backend/instakikg/node_-modules/mongoose/lib/model.js:4846:16
在/home/yuganksingh/me/Learn Full stack WEb Dev/CODING NINJAS/Backend/instakikg/node_modules/mongoose/lib/helpers/promiseOrCallback.js:16:11
在/home/yuganksingh/me/Learn-Full-stack-WEb-Dev/CODING-NINJAS/Backend/instakikg/node_-modules/mongoose/lib/model.js:4869:21
在$\u save.error(/home/yuganksingh/me/Learn Full stack WEb Dev/CODING NINJAS/Backend/instakikg/node\u modules/mongoose/lib/model.js:500:16)
在/home/yuganksingh/me/Learn Full stack WEb Dev/CODING NINJAS/Backend/instakikg/node_modules/kareem/index.js:246:48
下一步(/home/yuganksingh/me/Learn-Full-stack-WEb-Dev/CODING-NINJAS/Backend/instakikg/node_-modules/kareem/index.js:167:27)
下一步(/home/yuganksingh/me/Learn Full stack WEb Dev/CODING NINJAS/Backend/instakikg/node_modules/kareem/index.js:169:9)
在Kareem.execPost(/home/yuganksingh/me/Learn Full stack WEb Dev/CODING NINJAS/Backend/instakigg/node_modules/Kareem/index.js:217:3)
at_handleWrapError(/home/yuganksingh/me/Learn Full stack WEb Dev/CODING NINJAS/Backend/instakikg/node_modules/kareem/index.js:245:21)
错误:
{评论:
{ValidatorError:对值“[{”\u id:“5fc0dfec4c87ad723b06d6eb”,“内容”:“sadfasdf”,“用户”:“5FBA3CBD0B2310B7ABA868B”,“post:“5fc0de91fc0ca96fd0b331df”,“创建数据”:“2020-11-27T11:15:56.991Z”,“更新数据”:“2020-11-27T11:15:56.991Z”,“注释”路径处的“\u v:“0}]”
在_init(/home/yuganksingh/me/Learn Full stack WEb Dev/CODING NINJAS/Backend/instakigg/node_modules/mongoose/lib/document.js:691:37)
在init(/home/yuganksingh/me/Learn-Full-stack-WEb-Dev/CODING-NINJAS/Backend/instakikg/node_-modules/mongoose/lib/document.js:657:5)
在model.Document.$\u init(/home/yuganksingh/me/Learn-Full-stack-WEb-Dev/CODING-NINJAS/Backend/instakikg/node\u-modules/mongoose/lib/Document.js:586:3)
在model.syncWrapper[as$\uu init](/home/yuganksingh/me/Learn Full stack WEb Dev/CODING NINJAS/Backend/instakikg/node\u modules/kareem/index.js:234:23)
在model.Document.init(/home/yuganksingh/me/Learn Full stack WEb Dev/CODING NINJAS/Backend/instakikg/node_modules/mongoose/lib/Document.js:545:8)
在completeOne(/home/yuganksingh/me/Learn-Full-stack-WEb-Dev/CODING-NINJAS/Backend/instakikg/node_-modules/mongoose/lib/query.js:2844:12)
在model.Query.Query._completeOne(/home/yuganksingh/me/Learn Full stack WEb Dev/CODING NINJAS/Backend/instakikg/node_modules/mongoose/lib/Query.js:2073:7)
在Immediate.Query.base.findOne.call(/home/yuganksingh/me/Learn Full stack WEb Dev/CODING NINJAS/Backend/instakikg/node_modules/mongoose/lib/Query.js:2117:10)
立即。我希望您使用的是mongoose版本5.10.16,请将其更改为5.10.15。
检查此GitHub问题线程。
5.10.16已完全损坏。我希望您使用的是mongoose版本5.10.16,请将其更改为5.10.15。
检查此GitHub问题线程。
5.10.16完全损坏。我检查了package.json的“mongoose”:“^5.10.15”,请不要使用任何波浪号(~)和插入符号(^),只需执行package.json中的“mongoose”:“5.10.15”。同样的问题没有发生变化我检查了package.json的“mongoose”:“^5.10.15”,请不要使用任何波浪号(~)和插入符号(^),只需执行“mongoose”:“5.10.15”在package.json.json中,同样的问题没有发生变化