setzen Ich bin mit Nodejs herumspielen und durch den Bau einer kleinen Rest API express. Meine Frage ist, was ist der beste Weg, um den Code-Status, sowie die Antwortdaten zu setzen?Richtiger Weg, um Antwort-Status und JSON-Inhalt in einer REST-API mit Nodejs und express
Lassen Sie mich mit ein wenig Code erklären (ich will nicht den Knoten setzen und Express Code erforderlich, den Server zu starten, nur die Router-Methoden, die betroffen sind):
router.get('/users/:id', function(req, res, next) {
var user = users.getUserById(req.params.id);
res.json(user);
});
exports.getUserById = function(id) {
for (var i = 0; i < users.length; i++) {
if (users[i].id == id) return users[i];
}
};
Der folgende Code funktioniert perfekt und beim Senden einer Anfrage mit Postman erhalte ich folgendes Ergebnis:
Wie Sie sehen können, zeigt der Status 200, was in Ordnung ist. Aber ist dies der beste Weg, dies zu tun? Gibt es einen Fall, in dem ich den Status selbst setzen müsste, sowie den zurückgegebenen JSON? Oder wird das immer per Express gehandhabt?
Zum Beispiel habe ich nur einen kurzen Test und leicht modifiziert, die get-Methode oben:
router.get('/users/:id', function(req, res, next) {
var user = users.getUserById(req.params.id);
if (user == null || user == 'undefined') {
res.status(404);
}
res.json(user);
});
Wie Sie sehen können, wenn der Benutzer nicht im Array gefunden wird, werde ich gesetzt nur einen Status 404.
Ressourcen/Hinweise, um mehr über dieses Thema zu erfahren, sind mehr als willkommen.
Das ist meine bestbewertesten Antwort und es wird nicht akzeptiert :(@dukable, ich weiß, dass es schon eine Weile her ist, aber hat es dein Problem gelöst? –
@ MichałDudak: Ja, Ihre Antwort sollte die akzeptierte sein. Aber dieser dukable Benutzer ist seit dem 15. Oktober 2015 (wie am 31. Juli 2017) nicht aktiv. +1 für Ihre Antwort anyways;) –