Mongoose:直接插入JS对象到数​​据库

好的,所以我有一个JS对象通过AJAX发送到nodejs后端。 我想将这个js对象直接插入到我的mongoose数据库中,因为对象键已经与db模式完全匹配了。

我现在有这个(不dynamic和过于复杂):

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'); }); 

但是要把它修剪成这样(性感和动感):

 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'); }); 

如果你使用这样的插件像mongoose( http://tomblobaum.tumblr.com/post/10551728245/filter-strict-schema-plugin-for-mongoose-js ),你可以在你的表单中放置一个数组, newitem[item_title]newitem[item_title] newitem[item_abv] – 或item[title]item[abv]

如果元素匹配,那么也可以传递整个req.bodyMongooseStrict插件会过滤出你的模式中没有显式设置的任何值,但是它仍然会将检查types和validation结果留给mongoose。 通过在模式中设置适当的validation方法,您将可以免受任何注入攻击。

编辑:假设你已经实现了插件,你应该能够使用这个代码。

 app.post('/items/submit/new-item', function(req, res){ new itemModel(req.body.formContents).save(function (e) { res.send('item saved'); }); });