Express.js 4.X mit NodeJS 6.x verwendenExpress.js, Routendefinition, Controller Standort und api Dokumentation
ich vorher meine Routen wurde definiert, auf diese Weise:
/**
* @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);
}
Ich fand es war der richtige Weg, tun es, weil:
- Sie die Route Dokumentation über der Routendefinition schreiben
- Wenn Sie die Route ändern, ändern Sie die Dokumentation
- Sie die Route Dokumentation über Ihren Controller haben
- URL params/Körperinhalt (req.params.name // req.body.name)
- Code HTTP-Fehler
- IDE wie WebStorm Verwendung zurückzukehren jenen Kommentar für die automatische Vervollständigung
für die besten Praktiken der Suche, ich habe schon viele Male gesagt, ich soll einen Controller erstellen und die Strecke defintion an anderer Stelle machen, mit dem folgenden Code endet:
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);
Der einzige gute Grund, warum ich mit dieser Art und Weise sehen organisieren Ihr Code ist, dass wenn Sie zwei Straßen haben, die dasselbe Zeug machen, können Sie sie den gleichen Controller benutzen lassen.
- Sollte ich meinen Controller & meine Routen trennen?
- Wenn ja, wie soll ich das dokumentieren?
- Was sind die Vorteile einer solchen Code-Organisation?