Lightweight web framework for node.js
- Small, documented and easily extendable core
- Advanced routing system (content type, method, host) with RegExp support and placeholders
- Compression support (gzip, deflate)
- Static file serving support (with ETag, Last-Modified, Expires and LRU-cache)
General usage
var Crixalis = require('crixalis');
Crixalis
/* Load plugins */
.plugin('shortcuts')
.plugin('access', { format: '%7T %-4m %s %9B %-15h %U%q' })
/* Add route with placeholder */
.get('/hello/:name', function () {
/* Prepare data for response */
this.stash.json = {
message: 'Hello, ' + this.params.name + '!'
};
/* Render response */
this.render();
})
/* Add another route for GET and HEAD methods */
.route('/info', { methods: ['GET', 'HEAD'] }, function () {
var that = this;
require('fs').readFile('./readme.md', function (error, result) {
if (error) {
/* Handle error */
that.error(error);
} else {
that.body = result;
that.render();
}
});
})
/* Catch everything else */
.route('*', function () {
this.redirect('/hello/World');
})
/* Start server on port 8080 */
.start('http', 8080);
Available core plugins
access
Access log (with configurable CLF support)compression
Compress response usinggzip
ordeflate
compression (also works withstatic
plugin)request
Thin wrapper aroundhttp.request
andhttps.request
shortcuts
Route declaration helpers,.get()
,.post()
, etc.static
Serve static files
Crixalis comes with script for serving static files
# Start web server on port `8080` and serve files from current folder
crixalis
# Start web server on port `3000` and serve files from `~/www/`
crixalis --port 3000 --path ~/www/
Copyright 2012-2016 Alexander Nazarov. All rights reserved.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.