Express.js Router 
Structured routing for Express.JS
Example
Project structure:
.
+-- routes
| +-- getStatus.js
+-- models
| +-- MyModel.js
+-- app.js
Route definition getStatus.js
"use strict";
var MyModel = require("../models/MyModel");
function validate(req, res) {
req.assert("id")
.notEmpty().isInt();
}
function respond(req, res, next) {
var id = req.param("id");
MyModel.findById(id, function (error, instance) {
if (error) {
return req.json(500, { error: error.message });
}
else {
res.json({ status: "OK", data: instance });
}
});
}
module.exports = {
path: "/status/:id",
method: "GET",
validate : validate,
respond : respond,
conditions : ["loginRequired"]
};
Express app.js
"use strict";
var express = require("express");
var expressRouter = require("expressjs-router");
var app = express();
expressRouter.enableDebug();
expressRouter.createConditional("loginRequired", function (req, res) {
return !!req.user;
});
expressRouter.create(app, "./path/to/routes");
app.listen(80);
- Routes prefixed by
_
won't be included - You can enable debug mode by calling
expressRouter.enableDebug();
License:
MIT