我尝试使用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'文件。
你能否告诉我如何进行线索或任何其他解决方案。 我非常确定我这样做的方式不对 - 但我有点迷失了......
非常感谢。
答案 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;
});
});