在我的Jasmine-Node spec_helper中,我有require("../app/test")
,它可以很好地提取test
文件。但是,如果我尝试require("../app/*")
,我会得到Error: Cannot find module '../app/*'
。
有没有办法拉入像这样的目录的所有文件/子目录?
答案 0 :(得分:2)
有几种方法可以实现您的目标,最简单的方法是在index.js
目录中创建./app
。这个index.js
反过来引用该目录中的所有模块,并导出它们:
exports.foo = require("./foo");
exports.bar = require("./bar");
如果你想动态地做,你必须写一些代码:
var fs = require("fs");
fs.readdir("./app", function(err, files) {
if(err) console.error(err);
for(var i = 0, len = files.length; i < len; i++) {
require("./app/" + files[i]);
}
});
有关节点如何加载模块的更多信息,特别是here's the relevant docs和约folders as modules。
不幸的是,Jed在这里的回答是错误的。