首先,这是代码:
Mongoose Schema
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
// Registration Form schema
var RegistrationFormSchema = new Schema;
RegistrationFormSchema.add({
studentFirst: { type: String, required: true },
studentLast: { type: String, required: true },
studentGrade: { type: String, required: true },
guardianFirst: { type: String, required: true },
guardianLast: { type: String },
guardianEmail: { type: String },
courseString: { type: String },
courseArray: { type: Array }
});
module.exports = mongoose.model('RegistrationForm', RegistrationFormSchema);
相关API路线
apiRouter.route('/registerNow')
.post(function(req, res) {
var newForm = new RegistrationForm();
console.log(req.body);
newForm.studentFirst = req.body.studentFirst;
newForm.studentLast = req.body.studentLast;
newForm.studentGrade = req.body.studentGrade;
newForm.guardianFirst = req.body.guardianFirst;
newForm.guardianLast = req.body.guardianLast;
newForm.guardianEmail = req.body.guardianEmail;
newForm.courseString = req.body.courseString;
newForm.save();
}
这是我的控制器内部,我正在提出请求。同时在Postman中提出相同的响应请求,因此不确定它是否与我的请求有关,但是想要包含这个请求以获得更多的答案信息。
$http.post('/api/registerNow', {
'studentFirst': vm.courseInfo.studentFirst,
'studentLast': vm.courseInfo.studentLast,
'studentGrade': vm.courseInfo.studentGrade,
'guardianFirst': vm.courseInfo.guardianFirst,
'guardianLast': vm.courseInfo.guardianLast,
'guardianEmail': vm.courseInfo.guardianEmail,
'courseString': vm.courseInfo.courseString,
'courseArray': ['asdasd', 'fasfasf', 'gasgasga']
});
现在我们有相关的代码,问题!
当我将HTTP Post请求保存到我的数据库时,它全部保存,但它将courseArray保存为空数组'[]',无论它是什么,如果它是空的还是满的。
我认为这是一个Mongoose Schema问题。
答案 0 :(得分:1)
在您的路线中,您没有使用请求中的数据设置newForm.courseArray
属性。 Mongoose可能将默认值设置为空数组。
尝试使用以下代码
apiRouter.route('/registerNow')
.post(function(req, res) {
var newForm = new RegistrationForm();
console.log(req.body);
newForm.studentFirst = req.body.studentFirst;
newForm.studentLast = req.body.studentLast;
newForm.studentGrade = req.body.studentGrade;
newForm.guardianFirst = req.body.guardianFirst;
newForm.guardianLast = req.body.guardianLast;
newForm.guardianEmail = req.body.guardianEmail;
newForm.courseString = req.body.courseString;
newForm.courseArray = req.body.courseArray; //This line is missing
newForm.save();
});