Nodejs:从包含函数的外部文件加载javascript

时间:2015-08-05 19:55:28

标签: javascript node.js

我尝试使用Nodejs应用程序从我的文件系统上的文件加载javascript对象。

存储在filesystem文件中的示例对象(' myOwnFunction.js'):

exports.myOwnFunction = {
    "var2": "My value1",
    "var2": 100,
    "var3": true,
    "var4": function(abc) {
        var var5 = "some other value";
        runOtherFunction(var5)
    }
}

所以,在应用程序本身,我想"加载"几个对象,如上面的示例。

fs.readdir("./", function (err, files) {
    files.forEach(function(file) { // so loading all js files in folder
        var foo = require( "./"+file ).myOwnFunction;
    });
});

因此,该脚本返回以下错误消息:

  

ReferenceError:未定义runOtherFunction

我想这绝对正常; (a)同步的问题,也因为" runOtherFunction"不适用于' myOwnFunction.js'文件。

你能否告诉我如何进行线索或任何其他解决方案。 我非常确定我这样做的方式不对 - 但我有点迷失了......

非常感谢。

1 个答案:

答案 0 :(得分:0)

导出模块的方式有点奇怪。我不知道它本身是错的,但它不遵循node.js约定。试试这个:

myOwnFunction.js:

module.exports = function() {
    "var2": "My value1",
    "var2": 100,
    "var3": true,
    "var4": function(abc) {
        var var5 = "some other value";
        runOtherFunction(var5)
    }
});

在您要使用此功能的文件中:

myOwnFunction = require('./myOwnFunction');

fs.readdir("./", function (err, files) {
    files.forEach(function(file) { // so loading all js files in folder
        var foo = require( "./"+file ).myOwnFunction;
    });
});