我有一个config.json文件:
Socket
在我的index.js中,我想访问对象' test',并遍历每个数学元素。
我是数组的新手,所以仍然试图弄清楚它们是如何工作的。这种方法有什么问题? (我知道它不起作用)
{
"test": {
"maths": [
"core",
"core2"
]
}
}
另外,这样做的正确方法是什么?
答案 0 :(得分:2)
尝试将config.js更改为
module.exports = {
"test": {
"maths": [
"core",
"core2"
]
}
};
现在看来 - 您的模块不会导出任何内容。
更新:如果您更喜欢.json - 此方法无效,因为.json无法导出(但在节点中可能需要它,请参阅How to parse JSON using Node.js?),它使用.js文件作为模块。你也必须改变这一部分:
require('./config.js')
Update2:它按原样运行 index.js
var CONFIG = require('./config')
var fn = CONFIG.test.maths
fn.forEach(function(value){
console.log(value);
});
config.json
{
"test": {
"maths": [
"core",
"core2"
]
}
}
在我的节点v5.3.0
中答案 1 :(得分:0)
要解决此问题,请将config.js文件重命名为config.json(用于命名约定)
变化:
var CONFIG = require('./config')
要:
var CONFIG = require('./config.json')
原因是要求文件需要包含扩展名
的确切文件名答案 2 :(得分:0)
3个可行的解决方案,选择最适合您的解决方案:
config.js
的文件扩展名更改为config.json
改为读取文件并将其解析为JSON:var CONFIG = JSON.parse(require('fs').readFile('./config.js'));
将文件设为导出JSON而非普通JSON的模块,如Anton所建议的那样
答案 3 :(得分:0)
您只需使用JQuery方法 getJSON 将 Json 加载到 Javascript 。
`$.getJSON( "config.json", function( data ) {
console.log(data);
var val = data.test.maths
val.forEach(function (d) {
console.log(d);
})
});`