Node.js 如何在mongodb中保存表单输入数组?
这是我正在使用的表格:Node.js 如何在mongodb中保存表单输入数组?,node.js,express,mongoose,pug,Node.js,Express,Mongoose,Pug,这是我正在使用的表格: <form method="post" enctype="multipart/form-data"> <label class="label">Class Name</label> <label class="input"> <input type="text" name="class_name[]"> </label> <label class="label">G
<form method="post" enctype="multipart/form-data">
<label class="label">Class Name</label>
<label class="input">
<input type="text" name="class_name[]">
</label>
<label class="label">Grade</label>
<label class="input">
<input type="text" name="grade[]">
</label>
</form>
var SchoolSchema = new mongoose.Schema({
classroom: [{
Name: {
type: String,
required: true
},
grade: {
type: Number,
default: 1
}
}]
});
首先,我尝试使用以下功能保存数据:
var School = new mongoose.Schema.model('School');
exports.submit = function(req, res) {
var classRooms = [];
for (var i = 0; i < req.body.class_name.length; i++) {
classRooms.push({Name: req.body.class_name[i], grade: req.body.grade[i]});
}
School.create({classroom: classRooms}, function(err, school) {
...
});
};
应该是这样的
classroom:[{Name:ABC, Grade:1},{Name: EFG, Grade:2}]
我甚至尝试更改以下功能:
var School = new mongoose.Schema.model('School');
exports.submit = function(req, res) {
var classRooms = [];
for (var i = 0; i < req.body.class_name[0].length; i++) {
classRooms.push({Name: req.body.class_name[0][i], grade: req.body.grade[0][i]});
}
School.create({classroom: classRooms}, function(err, school) {
...
});
};
请任何人告诉我我做错了什么,以及如何纠正。谢谢 对于单条目和多条目这两种情况,req.body.class_name数据是什么样子的?另外,您是否使用中间件?不,我没有使用任何body解析器。我不明白你的第一个问题。我的意思是,你想知道我输入的数据类型或它是如何表示的吗?我是说,如果你做一个console.log,每个案例的数据格式是什么?bodyParser中间件可能是正确解析的解决方案。
var School = new mongoose.Schema.model('School');
exports.submit = function(req, res) {
var classRooms = [];
for (var i = 0; i < req.body.class_name[0].length; i++) {
classRooms.push({Name: req.body.class_name[0][i], grade: req.body.grade[0][i]});
}
School.create({classroom: classRooms}, function(err, school) {
...
});
};
classroom:[{Name:A,Grade:2 },{Name:B,Grade:1}]