
Features
- high performance, our main target is high performance, minimum of hidden unnecessary functionality
- strict routing, we like strict routing system, if method should use some certain parameters, it must get it
- simple use, if newbie can use our framework without any problem, this is real cool
- friendly use, we provide way for connect packages, modules from other developers
Installation
$ npm install active
Quick start
var active = require('active');
var app = active();
app.addRoute({
'url': '/'
}, function(req, res) {
res.statusCode = 200;
res.end(content);
});
app.startServer({
'port': 80,
'host': 'localhost',
'cluster': true
});
Routing
For adding new routing rule, you must use "addRoute" method of application object:
app.addRoute(options, callback);
Options
Settings for special rule.
{
"method": String,
"url": String,
"match": Object,
"query": Object
}
Examples of application routes.
app.addRoute({
'url': '/{category}',
'match': {
'category': ['phones', 'stuff']
}
}, callback);
app.addRoute({
'url': '/{category}/{item}',
'match': {
'category': ['phones', 'stuff'],
'item': '([a-z0-9-]{2,63}\.[a-z]{4})'
}
}, callback);
Callbacks
Helpful information about callbacks.
Request parameters
You can use path parameters, which been set in route ("url" directive):
app.addRoute({
'url': '/{category}/{item}',
'match': {
'category': ['phones', 'stuff'],
'item': '([a-z0-9-]{2,63}\.[a-z]{4})'
}
}, function(req, res) {
console.log(req.params);
});
Response
You can choose how to return result to the client. Below you can see both examples.
Standart
Use standard capabilities of Node using "res" object:
app.addRoute(route, function(req, res) {
res.statusCode = 200;
res.end(content);
});
Custom
Use custom capabilities of framework:
app.addRoute(route, function(req, res) {
res.html(http_code, html);
});
app.addRoute(route, function(req, res) {
res.json(http_code, json);
});
Redirect
Framework provides custom way for redirecting queries:
app.addRoute(route, function(req, res) {
res.redirect('/path/', 301);
});
Layers
You can add middleware layer for all queries, it can be your own solution or package of other developer. Middleware layer is a function with three arguments: "req", "res" and "next", first and second are standard NodeJS objects, third is callback. Middleware will be executed for every request to the application.
You can use any number of layers, but remember about your rom ;)
app.useLayer(function(req, res, next) {
next();
});
License
The Active JS framework is open-source software licensed under the MIT