Ich spiele mit Nodejs herum und drücke es aus, indem ich eine kleine Rest-API erstelle. Meine Frage ist, was ist die bewährte Methode / der beste Weg, um den Codestatus sowie die Antwortdaten festzulegen?
Lassen Sie mich dies mit ein wenig Code erklären (ich werde nicht den Knoten und den zum Starten des Servers erforderlichen Code ausdrücken, sondern nur die betreffenden Routermethoden):
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 einwandfrei. Wenn ich eine Anfrage mit Postman sende, erhalte ich das folgende Ergebnis:
Wie Sie sehen können, zeigt der Status 200 an, was in Ordnung ist. Aber ist das der beste Weg, dies zu tun? Gibt es einen Fall, in dem ich den Status sowie den zurückgegebenen JSON selbst festlegen muss? Oder wird das immer per Express erledigt?
Zum Beispiel habe ich gerade einen Schnelltest durchgeführt und die obige Methode get leicht modifiziert:
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, setze ich nur den Status 404, wenn der Benutzer nicht im Array gefunden wird.
Ressourcen / Ratschläge, um mehr über dieses Thema zu erfahren, sind mehr als willkommen.