茉莉花节点要求*

时间:2012-02-27 01:55:12

标签: javascript node.js jasmine

在我的Jasmine-Node spec_helper中,我有require("../app/test"),它可以很好地提取test文件。但是,如果我尝试require("../app/*"),我会得到Error: Cannot find module '../app/*'

有没有办法拉入像这样的目录的所有文件/子目录?

1 个答案:

答案 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在这里的回答是错误的。