I have a resource loader JS file running on a nodejs server. I want to drop in a bunch of resource js files that the resource loader will load into an array on initialization.
// resource loader js file
var Resources = (function () {
var resources = {};
function Resources(){
... loading code here
// example of use after loading
resources[key].doStuff();
}
})();
module.exports.Resources = Resources;
In the same directory the developer can just drop in new resource.js files as needed.
// resource file
var ResourceA = (function () {
function ResourceA(){
... loading code here
// example of use after loading
ResourceA.prototype.doStuff= function () {
// do stuff
};
})();
I'm not sure what you mean, but if what you want is to load a bunch of modules in a single folder on the server side, I built this little function to do just that.
var path = require('path'),
walk = require('walk');
function findModules(opts,done){
var walker = walk.walk(opts.folder, { followLinks: false }),
modules = [];
walker.on('file', function(root, stat, next) {
var current = path.join(root, stat.name),
extname = path.extname(current);
if(extname === '.js' && (opts.filter === undefined || opts.filter(current))){
var module = require(current);
modules.push(module);
}
next();
});
walker.on('end', function() {
done(modules);
});
}
and then, you call it like this:
findModules({
folder: 'path/to/folder',
filter: undefined // either undefined or a filter function for module names
}, function(modules){
// continue
});
to install walk:
npm install walk --save