我正在尝试将一些数据保存在discussionReplyingSchema中,然后将其连接到讨论架构。这是我的两个讨论和回复示意图:
const mongoose = require('mongoose');
const ObjectID = mongoose.Schema.Types.ObjectId;
let discussionSchema = mongoose.Schema({
title: {type: String, required: true},
content: {type: String},
author: {type: ObjectID, required: true, ref: 'User'},
date: {type: Date, default: Date.now()},
reply: [{ type: ObjectID, ref: 'Replying' }]
});
let discussionReplyingSchema = mongoose.Schema({
content: {type: String, required: true},
author: {type: mongoose.Schema.Types.ObjectId, required: true, ref: 'User'},
date: {type: Date, default: Date.now()}
});
const Discussion = mongoose.model('Discussion', discussionSchema);
const Replying = mongoose.model('Replying', discussionReplyingSchema);
module.exports = Discussion;
module.exports = Replying;
在控制器中,我获得了用户和内容,并试图将它们保存在mongoose中,但我得到了错误。代码:
replyPost: (req, res) => {
let replyParts = req.body;
let replyContent = req.body.replyContent;
console.log(replyContent);
let userId = req.user.id;
replyParts.author = userId;
Replying.create(replyParts).then(reply => {
req.user.reply.push(reply.id);
req.user.save(err => {
if (err) {
res.render('/');
} else{
res.redirect('/');
}
});
});
}
这就是数据库现在的状态:
"reply":[],
我这样做是为了我的项目,所以如果可能的话,有人可以向我解释错误在哪里,如果可能的话,修复它?
发布于 2017-04-16 00:27:58
看起来你可能想用replyContent vs replyParts保存,但我不确定。您的console.log(replyContent)打印出什么内容?此外,在您的承诺中添加一个catch,这样您就可以捕获错误并查看发生了什么,这可能只是一个模式差异。
replyPost: (req, res) => {
let replyParts = req.body;
console.log('replyParts', replyParts);
let replyContent = req.body.replyContent;
console.log('replyContent', replyContent);
let userId = req.user.id;
replyParts.author = userId;
Replying.create(replyParts).then(reply => {
req.user.reply.push(reply.id);
req.user.save(err => {
if (err) {
console.log('USER SAVE ERR:' + err);
res.render('/');
} else{
res.redirect('/');
}
});
}).catch(err => console.log('REPLYING ERR:' + err));
}
https://stackoverflow.com/questions/43428107
复制相似问题