Ich sende eine JSON-Struktur an meinen Node/Express-Server und speichere das Objekt in einer Datenbank. Das Problem ist, dass ich JSON mit Integer und Booleans sende, aber alles wird als Strings gespeichert.Wann wird diese JSON-Struktur in alle Zeichenfolgen konvertiert?
Hier ist mein Knoten/express Code:
var express = require('express');
var app = express();
app.enable("jsonp callback");
app.use(express.bodyParser());
// allow cross origin scripting to get data from devices directly
app.all('*', function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
});
app.post('/departures', function(req, res) {
/* I started using this to convert back to integers - but need to solve the problem
for (var i in req.body.data) {
req.body.data[i].siteid = parseInt(req.body.data[i].siteid);
}
*/
console.log('saving data '+JSON.stringify(req.body.data));
positionProvider.save(req.body.data, function(){
res.json({status:'success'});
})
});
Hier ist, wie ich mit jquery bin Posting:
var data = [{"siteid":123}];
$.ajax({
type: 'POST',
url: serverUrl + '/departures',
data: {
data: data
},
success: function(resp) {
alert('saved departure data '+JSON.stringify(data))
},
error: function(err) {
console.log('error posting to server...');
console.log(err);
}
});
Die jquery Seite berichtet, dass es { "siteid": 123} gesendet, aber Die Knotenseite meldet, dass sie {"siteid": "123"} erhalten hat.
Wo wird die ganze Zahl in eine Zeichenkette umgewandelt?
Welche Datenbank verwenden Sie? Wie sieht Ihr Modellobjekt aus? –
Ich benutze mongodb, damit es glücklich speichert, was auch immer ich es gebe. –
Das verwende ich auch normal. Verwenden Sie Mungo-Modelle, um die Datenstruktur festzulegen? –