moduleLoader

0.1.0 • Public • Published

#moduleLoader ##Overview: moduleLoader is a basic extension for webservice.js that provides an eased way to support multiple modules surfacing multiple methods as Web Services.

##Syntax: The basic syntax is as follows:

require('moduleLoader')({
  modulesPath: '/api',
  title: "The long name of your product",
  name: "A short name",
  version: "0.1.0",
  endpoint: "http://localhost:8080"
});

##Basic usage with webservice.js:

var webservice  = require('webservice'),
    api         = require('./api'),
    colors      = require('colors');
webservice.createServer(api).listen(8080);
console.log(' > stand-alone json webservice started on port 8080'.cyan);

##Advanced Usage: At times it may be necessary for one module to call methods from another module. In this scenario the easiest way is to create a global api.js (or whatever name you want) that requires moduleLoader and returns it. An example of the api.js could be:

module.exports = require('moduleLoader')({
                    modulesPath: '/api',
                    title: "My REST Library",
                    name: "RLIB",
                    version: "0.1.0",
                    endpoint: "http://localhost:8080"
                  });

Then inside each module you would include the new api.js file within the calling method when you need to call a method from another module:

exports.echoProxy = function(options, callback){
  // Calls the echo method already defined in the API
  require('../api').echo(options, callback);
};
exports.echoProxy.schema = {
  msg: { 
    type: 'string',
    optional: false,
    message: "msg variable is required"
  }
};
exports.echoProxy.description = 'This is a proxy wrapper around the API echo method.';

##How is works: At the basic level moduleLoader scans the supplied folder for .js files and then requires them creating a temporary variable to hold the module.export that is returned. This temporary variable is then walked and used to expand on a local object. Finally, once all of the files have been loaded, this new object is returned.

##Future plans: Hopefully support for dynamic reloads will be added. This should also add in the functionality to load new modules when they are put into the watched directory.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.1.0
    4
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.1.0
    4

Package Sidebar

Install

npm i moduleLoader

Weekly Downloads

3

Version

0.1.0

License

none

Last publish

Collaborators

  • jdarling