Utilisation express.js 4.X avec NodeJS 6.xexpress.js, définition de la route, l'emplacement du contrôleur et de documentation api
je mes itinéraires déjà en train de définir ainsi:
/**
* @api {get} /users/:userId Get a user
* @apiName GetUser
* @apiGroup User
*
* @apiParam {Integer} userId Users unique ID.
*
* @apiSuccess (Success 201) {text} User email
* @apiError {text} 401/Unauthorized.
* @apiError {text} 404/Not Foud Unknown userId
*/
router.get('/users/:userId', function(req, res, next) {
const userId = req.params.userId;
//get user
res.json(user);
}
Je l'ai trouvé était la bonne façon de le faire parce que:
- Vous écrivez la documentation de l'itinéraire ci-dessus la définition de l'itinéraire
- Si vous modifiez la route, vous modifiez la documentation
- Vous avez la documentation d'itinéraire au-dessus de votre contrôleur
- params/contenu du corps URL (req.params.name // de req.body.name)
- code d'erreur HTTP pour revenir
- IDE comme WebStorm pour utiliser ces commentaires autocomplétion
Vous cherchez des meilleures pratiques, on m'a dit plusieurs fois que je devrais créer un contrôleur et faire ailleurs la route défintion, se terminant par le code suivant:
class UserController {
constructor() {
this.listAll = this.listAll.bind(this);
}
getUser(req, res, next) {
const userId = req.params.userId;
//get user...
res.json(user);
}
}
router.get('/users/, UserController.getUser);
La seule bonne raison que je vois avec cette façon d'organiser votre code est que si vous avez 2 routes faisant la même chose, vous pouvez les faire utiliser le même contrôleur.
- Devrais-je continuer à séparer mon contrôleur & mes itinéraires?
- Si oui, comment dois-je le documenter?
- Quels sont les avantages d'une telle organisation de code?