javascript - Nodejs : load javascript from external file containing functions

标签 javascript node.js

我正在尝试使用 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: runOtherFunction is not defined

我想这绝对是正常的; (a)同步问题,也是因为“runOtherFunction”在“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;
    });
});

关于javascript - Nodejs : load javascript from external file containing functions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31841685/

相关文章:

javascript - requireJS 使用 require 加载文本

javascript - 使用 websocket 更新 ReactJS 应用程序

javascript - 如何让代理指向3001端口

javascript - 具有异步订阅者功能的 RxJS Observable

node.js - 无法从 Cloud9 IDE 将 Node.js 部署到 Azure 网站

javascript - 如何开始使用第一版 javascript sdk

javascript - 使用 Angular 形式更改表单元素

node.js - 通过 API 将 Twilio Voice Response 设置为 URL 而不是 TwiML 应用程序

javascript - Angular 5 中基于 HTTP 响应有条件地延迟加载模块

node.js - Electron 应用程序找不到 sqlite3 模块