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

Nodejs: load javascript from external file containing functions

本文关键字:外部 文件 加载 javascript 函数 包含 Nodejs      更新时间:2023-09-26

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

存储在文件系统文件('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: runnotherfunction is not defined

我想这是绝对正常的;一个问题(a)同步,也因为" runnotherfunction "是不可用的'myOwnFunction.js'文件。

你能给我提示如何进行或任何替代的解决方案吗?我很确定我这样做是错误的方式-但我有点迷路了。

您导出模块的方式有点奇怪。我不知道它本身是错误的,但它不遵循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;
    });
});