simple-node
v0.0.8
Published
Simple Components helps build their bundled applications simply. Unpretentious way we want to help you save time and less development efforts.
Downloads
5
Readme
Simple Components on Node.js
Simple Components helps build their bundled applications simply. Unpretentious way we want to help you save time and less development efforts.
- Components of library living on Simple folder.
- Frontend is the folder where the living files of controller.(you can change location setting dispatch.path)
- Routes is the folder where you save object routes.
How works
// In this case its a HTTP server
http.createServer(function(request, response) {
var requestParsed = require('url').parse( request.url, true );
var router = require('Simple/Router/Base');
router.routes = require( 'Routes/routes' );//inject routes on router..see Routes/routes.js
//main concept are resource that represent module/method/outputFormat on node.js
var resource = router.getResourceByUri(requestParsed.pathname);
//this dispatch resource on system
var dispatch = require('Simple/Controller/Dispatch');
dispatch.resource(resource, requestParsed, response);
}).listen(port);
Routes
Routes are nested objects that represents paths e resources
Basic routes are (Routes/routes.js):
module.exports = [
//STATIC MATCH notfound page and errorPage
{
path:/^.*\/notFound$/,
resource:{
controller:'index',
action:'notfound'
}
},
{
path:/^.*\/errorFound$/,
resource:{
controller:'index',
action:'errorfound'
}
},
//index common pattern ---- match first!
{
path:/^\/$/,
resource:{
controller:'index',
action:'index'
}
},
//controller/action/params[0]/params[1]/params[2]...
{
path:/^\/([^\/]+)\/([^\/]+)\/?(.*)$/,
resource:{
controller:1,
action:2,
params:3
//,_continue:true //if you have personal pattern you need passed common patterns until find default pattern
}
},
{
path:/^\/([^\/]+)\/?$/,
resource:{
controller:1,
action:'index'
//,_continue:true //if you have personal pattern you need passed common patterns until find default pattern
}
},
//--------------------------------------------------
//(NOTE: _continue:true are disabled on above common patter, the loop match cannot pass this item, because already finded pattern on common pattern. uncomment _continue:true if you like create alias or personal patterns)
//--------------------------------------------------
//after match default pattern, rename to personal pattern
{
path:/^\/home.*/,
resource:{
controller:'index'
}
}
];
Run example
This code is really useful.
Frontend folder contain you own routes and server, you can add your View and Helper-Model layer
Install
git clone [email protected]:stvkoch/Simple-node.git yourSimpleApp
cd yourSimpleApp
#run single server
node Frontend/Server/server.js 3000
#run cluster mode
node Frontend/Server/server.js 3000 true
open browser
http://localhost:3000/home/index/a/b
http://localhost:3000/home/show
http://localhost:3000/index/index
Truly functional, but work in progress. New components are added constantly
Any question, please send message to:
- Steven Koch [email protected]