Bawię się z Nodejsem i wyrażam, budując API małego odpoczynku. Moje pytanie brzmi: jaka jest dobra praktyka / najlepszy sposób na ustawienie statusu kodu, a także danych odpowiedzi?
Pozwól, że wyjaśnię trochę kodu (nie umieszczę węzła i kodu ekspresowego niezbędnego do uruchomienia serwera, tylko metody routera, których to dotyczy):
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];
}
};
Poniższy kod działa idealnie, a wysyłając zapytanie za pomocą Postmana, otrzymuję następujący wynik:
Jak widać, status pokazuje 200, co jest OK. Ale czy to najlepszy sposób, aby to zrobić? Czy istnieje przypadek, w którym powinienem sam ustawić status, a także zwrócony JSON? Czy zawsze jest to obsługiwane przez ekspres?
Na przykład właśnie wykonałem szybki test i nieznacznie zmodyfikowałem powyższą metodę get:
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);
});
Jak widać, jeśli użytkownika nie ma w tablicy, ustawię tylko status 404.
Zasoby / porady, aby dowiedzieć się więcej na ten temat, są mile widziane.