0.1.0 • Published 9 years ago
route99 v0.1.0
Route99
The Route99
was developed to be simple. It is a server and route manager to create API Restful services.
Install
npm install route99 --save
Example
Route99
was developed to be modular. So, each registered route can be a module.
// File: routes/client.js
module.exports = function(app) {
// GET /
app.get('/', function(req, res) {
res.send({
'ip': '127.0.0.1',
'userAgent': 'Firefox 40'
});
});
}
// File: routes/status.js
module.exports = function(app) {
// GET /
app.get('/', function(req, res) {
var memory = getMemoryUsage();
var cpu = getCpuUsage();
res.send({
memory: memory,
cpu: cpu
});
});
// GET /memory
app.get('/memory', function(req, res) {
res.send(getMemoryUsage());
});
// GET /cpu
app.get('/cpu', function(req, res) {
res.send(getCpuUsage());
});
}
// File: app.js
var Route99 = require('route99');
var app = new Route99();
// GET /client
app.register('client', require('routes/client'));
// GET /status[/memory, /cpu]
app.register('status', require('routes/status'));
// Start server
app.listen({
port: 8080,
charset: 'utf-8',
timeout: 30 * 1000 // 30s
});
API
use
Register plugins to be executed for each request.
var Route99 = require('route99');
var app = new Route99();
app.use(function serverName(req, res, next) {
res.setHeader('X-Powered-By', 'route99');
next();
});
notFound
Register not found error.
var Route99 = require('route99');
var app = new Route99();
app.use(function serverName(req, res) {
res.writeHead(404, {'Content-Type': 'text/json'});
res.end({ code: 404, success: false, error: true });
});
before
Code to be executed before each request in specific route.
module.exports = function(app) {
app.before(function(done) {
if(isNotConnectedInDatabase === true) {
connectDatabaseSync();
}
done();
});
app.get('/', rootPath);
}
expose
Use expose
to register persistent data to be exposed to your route module.
module.exports = function(app) {
app.before(function(done) {
app.expose('foo', {'bar': true});
done();
});
app.get('/', function(req, res) {
// exposed data can be read in `env` object
res.send(app.env.foo);
});
}
To Do / Issues
HTTP Methods
- GET
- POST
- PUT
- DELETE
Improve
- Tests
Know issues
- api
before
do not receivereq
andres
objects.