Ok, więc mam obiekt JS, który jest POSTed przez AJAX do zaplecza nodejs. Chcę wstawić ten obiekt js bezpośrednio do mojej bazy danych Mongoose, ponieważ klucze obiektów są już doskonale dopasowane do schematu db.Mongoose: Wstawianie obiektu JS bezpośrednio do db
Obecnie mam to (nie dynamiczny i nadmiernie złożone):
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');
});
Ale chcemy przyciąć go do czegoś takiego (sexy i dynamiczny):
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');
});
* "Ok, więc mam obiekt JS, który jest Posted via AJAX do backend nodejs. Chcę wstawić ten js sprzeciw bezpośrednio do mojego mangusty db jako klucze obiekt już dopasować się idealnie ze schematu db "* Brzmi jak ** doskonały ** wektor do pewnego rodzaju ataku iniekcyjnego, podobnego do [SQL injection] (http://en.wikipedia.org/wiki/SQL_injection). Zawsze lepiej przetworzyć i zweryfikować swoje dane na serwerze przed wysłaniem. Klientom nie można ufać. –
Tak, wiem. To jest przypadek testowy. To nie było moje pytanie. – wilsonpage
Jest to zły przypadek testowy, ponieważ ZAWSZE należy sprawdzać poprawność danych :) Obecnie pracuję w podobnym kontekście i pomyślnie przetestowałem validate.js w celu sprawdzenia poprawności danych –