Ich habe den folgenden Code in meinen nodeJS / Expressjs-Server geschrieben:
app.post('/settings', function(req, res){
var myData = {
a: req.param('a')
,b: req.param('b')
,c: req.param('c')
,d: req.param('d')
}
var outputFilename = 'config.json';
fs.writeFile(outputFilename, JSON.stringify(myData, null, 4), function(err) {
if(err) {
console.log(err);
} else {
console.log("Config file as been overwriten");
}
});
});
Auf diese Weise kann ich die übermittelten Formulardaten abrufen und in eine JSON-Datei schreiben.
Das funktioniert perfekt. Der Kunde bleibt jedoch in einer Art Posting-Status und tritt schließlich eine Zeitüberschreitung auf. Ich muss also eine Art Erfolgsstatus oder Erfolgskopf an den Client zurücksenden.
Wie soll ich das machen?
Danke im Voraus!
Ich wollte nur hinzufügen, dass Sie json über den
res.json()
Helfer senden können .res.json({ok:true}); // status 200 is default
res.json(500, {error:"internal server error"}); // status 500
Update 2015:
res.json(status, obj)
wurde zugunsten von abgelehntres.status(status).json(obj)
res.status(500).json({error: "Internal server error"});
quelle
In Express 4 sollten Sie Folgendes tun:
res.status(200).json({status:"ok"})
anstelle der veralteten:
res.json(200,{status:"ok"})
quelle
Jup, du musst eine Antwort zurückschicken, die einfachste wäre
res.send(200);
Im Callback-Handler von
writeFile
.Der 200 ist ein HTTP-Statuscode, sodass Sie diesen im Fehlerfall sogar ändern können:
if (err) { res.send(500); } else { res.send(200); }
quelle