UNPKG

751 BJavaScriptView Raw
1//
2// # Controller Loader
3//
4// Loads controllers from the target directory.
5//
6// * **dir**, directory to load controllers from.
7// * **fn**, function called with each controller.
8// * **callback**, called when done.
9//
10var fs = require('fs');
11var path = require('path');
12var ControllerLoader = function (dir, fn, callback) {
13 fs.readdir(dir, function (err, files) {
14 if (err) {
15 callback(err);
16 return;
17 }
18
19 for (var i = 0, len = files.length; i < len; i++) {
20 if (files[i].indexOf('.js') === -1) continue;
21 var name = path.basename(files[i], '.js');
22 var source = path.join(dir, name);
23 var c = require(source);
24 fn(name, new c());
25 }
26
27 callback();
28 });
29};
30
31module.exports = ControllerLoader;
32