Utilizzando la stringa di query http come object di database node.js / express

Sperimentando con node.js / express / mongodb.

sto usando

http: // localhost: 3000 / models / save? model = {“name”: “blah blah blah”}

per passare un object JSON di prova alla rotta espressa / modelli / salvare per salvare in mongodb. Tutto funziona alla grande tranne l’istruzione collection.insert che restituisce un errore “non definito”.

Penso che debba essere che il parametro estratto dalla stringa di query da var model = req.query.model; non è nel formato corretto Qualche idea?

Il codice è il seguente:

var express = require('express'); var router = express.Router(); router.get('/save', function(req, res) { // Set our internal DB variable var db = req.db; var model = req.query.model; console.log (model); // Set our collection var collection = db.get('models'); // Submit to the DB collection.insert ( model, function (err, doc) { if (err) { // If it failed, return error res.send("There was a problem saving to the database."); console.log(doc); } else { console.log ("model saved"); res.send("OK") } }); }); module.exports = router; 

Si prega di provare il seguente:

 var model = JSON.parse(req.query.model); 

invece della linea

 var model = req.query.model; 

JSON.parse metodo JSON.parse analizza la rappresentazione della stringa JSON (che nel tuo caso è il parametro di richiesta della richiesta del model ) e restituisce l’object Javascript che puoi quindi utilizzare nel processo di inserimento.

Spero che aiuti in qualche modo.