Help export your modules by file or directory and store in global

Node Exporter

Useful modules exporter for global use.

We always need load modules with following codes:

var email = require('../../helpers/email')

If create much more files and directories, I will angry with using the absolute path. So there is a exporter, it is global definition for you.

Load modules:

var $ = require('exporter');
$('email', __dirname + '/email.js');

Use it

var $ = require('exporter');
// Use it 


npm install exporter


In bootstrap file, such as app.js in Express.

var $ = require('exporter');
// Load with variables 
$.debug = true;
$.env = process.ENV['NODE_ENV'];

Project structure such as:

- app.js
- helpers/
  - uploader.js
  - image.js
  - email.js
  - tools/
    - guid.js


// Set module directly 
$.uploader = require('./helpers/uploader');
// Or use exporter 
$.email = $(__dirname + '/helpers/email.js');
// And it's same as follow 
// Or use function export only 
$('email', __dirname + '/helpers/email.js');
// Export modules in directory 
$.helpers = $(__dirname + './helpers');
// Export modules recursive in directory 
$('allHelpers', __dirname + '/helpers', true);

In your process file or Express controller

var $ = require('exporter');
if ($.debug && $.env == 'product') {
    // Some logic 
var guid = $.allHelpers.tools.guid();
var sendEmail = $.helpers.email;
var uploader = $.uploader;

In Express application. You can use to export all routes.

var $ = require('exporter');
$.routes = $(__dirname + '/routes', true);

If you have the structure such as:

- routes/
  - register.js
  - api/
    - users.js

And you can use it simply

var $ = require('exporter');
app.get('/register', $.routes.register);
app.get('/api/users', $.routes.api.users);