hmvc_loader
v0.1.3
Published
A non opnionated hmvc loader for node
Downloads
6
Readme
hmvc_loader
A non opnionated HMVC loader for node. It traverses the folders indexing JS files trhough an MVC logic
Usage
Giving a structure like:
- root
- componentName1
- controllers
- A.js
- models B.js
- views C.js
- components
- componentName2
- controllers
- D.js
- controllers
- componentName2
- controllers
- componentName1
It loads the namespace on a sensible way, can be used to build urls or simply acess components by
Factory initialization
const Loader = require('hmvc_loader').Loader
const path = 'myPath/root'
const myLoader = Loader.getLoaderFromPath(path)
Map initialization
const Loader = require('hmvc_loader').Loader
const componentMap = {'controllers':{'TheNameSpaceThatIWant':{'SomeElem€ntname':'file.js'}}}
const myLoader = new Loader(componentMap)
Component loading
//Acessing A
const aInstance = myLoader.getComponent('controllers','componentName1','A')
//Acessing D
const dInstance = myLoader.getComponent('controllers','componentName1/componentName2','D')
//Notice how the components was sliced
URl handling
The motivation for this library is to make the components acessible within itself and to make urls based on the controllers Withing each controller you may expect an url on the form of
namespace/controllerName
And a map on the form of
{method:[param1,param2]}
so you can call it like this
const urlBuilder = (url,methods,obj){
}
myLoader.buildRoutes(urlBuilder)
Making your own structur and creation
The factory function has the follow structure
const factory = (loader, namespace, name, file) => {
return new require(file)(someMongooseInstance, loader, namespace)
}