我写过这个函数。它的作用是通过nodejs模块recursive-readdir将所有文件递归读取到文件夹中。它运作良好。
问题是我不知道如何使用routes
导出module.exports
数组之外的数据。我试图把它放在回调函数之外,但是变量是未定义的。任何的想法?
var path = require('path');
var recursive = require('recursive-readdir');
recursive(__dirname, function(err, files){
var routes = {};
for (var i = 0, dim = files.length; i < dim; i++) {
var file = path.basename(files[i], '.js');
if(file !== 'bootstrap'){
routes[file] = require(files[i]);
}
}
});
答案 0 :(得分:2)
var path = require('path');
var recursive = require('recursive-readdir');
module.exports = function getRoutes(callback) {
recursive(__dirname, function(err, files){
var routes = {};
for (var i = 0, dim = files.length; i < dim; i++) {
var file = path.basename(files[i], '.js');
if(file !== 'bootstrap'){
routes[file] = require(files[i]);
}
}
if (callback) { callback(routes); }
});
你现在可以像这样使用它
require('get_routes')(function(routes) { ... });
如果你想要更有表现力的方式,你可能想做
module.exports.find = function (callback) { ... }
然后在外面使用
var routes = require('routes')
routes.find(function (routes) {...});