使用Node和Express。我如何将所有request
数据保存到数组中,然后将数组中的每个项目插入到mongo集合中?
我的路线目前设置如下:app.post("/addbulletin", routes.addbulletin(db));
我正在处理视图并处理数据,如下所示:
exports.addbulletin = function(db) {
return function(req, res) {
// Get our form values. These rely on the "name" attributes
var date = req.body.date,
name = req.body.name;
// and many more...
// Submit to the DB
collection.insert({
"date" : date,
"name" : name
// and many more...
}, function (err, data) {
if (err) {
res.send("There was a problem adding the information to the database.");
}
else {
res.location("index");
res.redirect("/");
}
});
}
}
这种方式的问题是我必须知道需要发送到数据库的所有项目。如果我不知道页面上的哪些字段可以从中获取数据怎么办?这正是我目前所处的情况,因为我有一个基于用户选择填充输入的表单。因此,我不想将每个可能的req.body.whatever
放在一个变量中。我只想说req.body.all
,例如,只保存提交给变量的数据,然后将这些数据插入数据库,当然也提取每个字段的名称。
答案 0 :(得分:1)
您可以直接将req.body
保存到mongodb:
// Submit to the DB
collection.insert(req.body, function (err, data) {
if (err) {
res.send("There was a problem adding the information to the database.");
}
else {
res.location("index");
res.redirect("/");
}
});
只需保留req.body对象即可。请注意过滤(删除)某些属性,例如_id
:
delete req.body.__id