Hier ist mein Modell mit einem Json Antwort:Holen Sie sich ein json über Http Anfrage in NodeJS
exports.getUser = function(req, res, callback) {
User.find(req.body, function (err, data) {
if (err) {
res.json(err.errors);
} else {
res.json(data);
}
});
};
Hier bekomme ich es über http.request. Warum erhalte ich (Daten) eine Zeichenkette und nicht einen JSON?
var options = {
hostname: '127.0.0.1'
,port: app.get('port')
,path: '/users'
,method: 'GET'
,headers: { 'Content-Type': 'application/json' }
};
var req = http.request(options, function(res) {
res.setEncoding('utf8');
res.on('data', function (data) {
console.log(data); // I can't parse it because, it's a string. why?
});
});
reqA.on('error', function(e) {
console.log('problem with request: ' + e.message);
});
reqA.end();
Wie kann ich einen JSON bekommen?
JSON ist eine Serialisierung. Es ist nur JSON, wenn es sich in einer Zeichenfolge befindet oder anderweitig noch nicht als JavaScript analysiert wurde. Suchen Sie nach 'JSON.parse()'? –
das ist es. Danke Matt –
Ich dachte, das 'Daten'-Ereignis wurde jedes Mal mehrmals mit einem Argument aufgerufen, das ein Teil der String-Daten ist. Wäre es nicht sehr wahrscheinlich, dass die "Daten", die in diesem Fall zurückgegeben werden, JSON-Dateien enthalten, weil sie nur einen Bruchteil des gesamten Dokuments ausmachen? Ich denke, Sie müssen die Daten zwischenspeichern und dann 'JSON.parse()' in Ihrem 'Ende'-Ereignis verwenden. – Sukima