Senden von HTTP-response in node.js
Ich bin versucht, senden Sie eine http-Antwort in Knoten, das drucken der Ergebnisse im browser. Der vereinfachte Quellcode ist unten. Grundsätzlich werden alle Variablen definiert, die irgendwo in dem Programm, also das sollte auch kein problem sein. Wenn ich versuche das script auszuführen, bekomme ich immer die Fehlermeldung:
http.js:783
throw new TypeError('first argument must be a string or Buffer');
TypeError: first argument must be a string or Buffer
Kann So jemand vertraut mit node.js -oder javascript-syntax lassen Sie mich wissen, was das problem ist?
upload = function(req, res) {
var fileInfos = [obj, obj]; //defined as an array of objects
var counter = 0;
counter -= 1;
if (!counter) {
res.end({files: fileInfos}); //files is defined.
}
};
async.forEach(urls, downloadFile, function (err) { //all params defined.
if(err){
console.error("err");
throw err;
}
else{
http.createServer(function(req, res){
upload(req1, res); //req1 defined as an array of objects.
}).listen(3000, "127.0.0.1");
console.log('Server running at http://127.0.0.1:3000/');
}
});
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser Fehler wird Häufig verursacht durch den Versuch zu nennen
response.write
mit dem falschen Typ der parameter. Blick auf die Dokumentation legt es nahe:Nun
response.write( chunk, encoding )
erwartet, dass das Stück ein string sein, also es scheint möglich, dass, wenn Sie anrufenres.end({files: fileInfos})
es ist nicht in der Lage zu schreiben, den Inhalt des Objekts als ein string.Können Sie JSON verwenden.stringify() zu konvertieren, das JavaScript-Objekt to string vor dem senden an den client.