La bonne manière de définir le statut de la réponse et le contenu JSON dans une API REST faite avec nodejs et express

Je joue avec Nodejs et de l'exprimer par la construction d'une petite API rest. Ma question est, quelle est la bonne pratique/meilleure façon de définir le code d'état, ainsi que les données de réponse?

Laissez-moi vous expliquer avec un peu de code (je ne vais pas mettre le nœud et d'exprimer code nécessaire pour démarrer le serveur, le routeur méthodes qui sont concernés):

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];
  }
};

Le code ci-dessous fonctionne parfaitement, et lors de l'envoi d'une requête avec le Facteur, j'obtiens le résultat suivant:
La bonne manière de définir le statut de la réponse et le contenu JSON dans une API REST faite avec nodejs et express

Comme vous pouvez le voir, le statut de montre de 200, ce qui est OK. Mais est-ce la meilleure façon de le faire? Est-il un cas où j'aurais à définir le statut de moi-même, ainsi que le retour JSON? Ou est-ce toujours par s'exprimer?

Par exemple, je viens de faire un test rapide et légèrement modifiée de la méthode get ci-dessus:

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);
});

Comme vous pouvez le voir, si l'utilisateur ne se trouve pas dans le tableau, je vais juste mettre un statut de 404.

Ressources/conseils pour en savoir plus sur ce sujet sont plus que bienvenus.

  • C'est mon nominale la plus élevée de réponse et il n'est pas accepté 🙁 @dukable, je sais, ça fait un moment, mais que fait-il résolu votre problème?
  • Oui, votre réponse devrait être accepté par un. Mais ce dukable utilisateur n'est pas active depuis 15 oct 2015 (sur 31 Juillet 2017). +1 pour ta réponse, de toute façon 😉
InformationsquelleAutor dukable | 2014-09-26