我正在尝试使用 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/