wil*_*age 8 javascript mongoose mongodb node.js express
好的,我有一个JS对象,通过AJAX发布到nodejs后端.我想将这个js对象直接插入到我的mongoose db中,因为对象键已经与db模式完美匹配.
我目前有这个(不是动态的,过于复杂):
app.post('/items/submit/new-item', function(req, res){
var formContents = req.body.formContents,
itemModel = db.model('item'),
newitem = new itemModel();
newitem.item_ID = "";
newitem.item_title = formContents.item_title;
newitem.item_abv = formContents.item_abv;
newitem.item_desc = formContents.item_desc;
newitem.item_est = formContents.item_est;
newitem.item_origin = formContents.item_origin;
newitem.item_rating = formContents.item_rating;
newitem.item_dateAdded = Date.now();
newitem.save(function(err){
if(err){ throw err; }
console.log('saved');
})
res.send('item saved');
});
Run Code Online (Sandbox Code Playgroud)
但是想把它修剪成这样的(性感和动态):
app.post('/items/submit/new-item', function(req, res){
var formContents = req.body.formContents,
formContents.save(function(err){
if(err){ throw err; }
console.log('saved');
})
res.send('item saved');
});
Run Code Online (Sandbox Code Playgroud)
如果您使用mongoose这样的插件(http://tomblobaum.tumblr.com/post/10551728245/filter-strict-schema-plugin-for-mongoose-js),您可以在表单中放置一个数组,如newitem[item_title]和newitem[item_abv]- 或item[title]和item[abv]
req.body如果元素在那里匹配,你也可以传递整个.这MongooseStrict插件将筛选出在模式没有明确设定任何值,但它仍有类型检查和验证高达猫鼬.通过在架构中设置适当的验证方法,您可以免受任何注入攻击.
编辑:假设您已经实现了插件,您应该能够使用此代码.
app.post('/items/submit/new-item', function(req, res){
new itemModel(req.body.formContents).save(function (e) {
res.send('item saved');
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14891 次 |
| 最近记录: |