appix
v1.0.0-beta-01
Published
Lightweight application framework with dyependency injection and dynamic type checking for node js
Downloads
18
Readme
Appix 1.0.0-beta
- Es6 Node.js framework dev version
- Lightweight application framework with dyependency injection for node js
- This application framework is improved version of mvcjs nodejs framework
Features
- Appix follow reactive design pattern.
- Catch all runtime/syntax errors
- Has a dependency injection
- Built on top of ES6
Hello world example in appix
npm install appix
app/env.json
{
"components": {
"appix/logger": {
"enabled": true,
"console": true,
"level": 30
},
"appix/router": {
"useCustomErrorHandler": false
}
}
}
- app/index.js
'use strict';
let di = require('appix');
let Bootstrap = di.load('@{appix}/bootstrap');
// bootstrap application
let init = new Bootstrap({
listenPort: 9000,
appPath: __dirname + '/'
});
// set bootstrapped instance under custom name
di.setInstance('node', init);
// get router component
let router = init.getComponent('appix/router');
// add some routes
// Route actions are case sensitive!
router.add([
{
url: '/',
route: 'home/Index'
},
{
url: '/goto301',
route: 'home/Redirect301'
},
{
url: '/goto',
route: 'home/Redirect'
},
{
url: '/favicon.ico',
route: 'home/Favicon'
}
]);
// run server
init.listen();
- app/controllers/home.js
'use strict';
let di = require('appix');
let Controller = di.load('@{appix}/controller');
// Controllers can be inherited as many levels as you need
class Home extends Controller {
actionRedirect() {
return this.redirect('/', 302);
}
actionRedirect301() {
return this.redirect('/', 301);
}
actionIndex() {
return 'Hello world';
}
}
module.exports = Home;
- run node app/index.js
- open localhost:9000