Javascript 节点-将JSON文件加载到代码中

Javascript 节点-将JSON文件加载到代码中,javascript,node.js,Javascript,Node.js,我有一个节点应用程序。在这个应用程序中,我的目录结构如下: library/ ents/ index.js index.js package.json settings.json module.exports = { "url":"http://www.example.com" } My settings.json文件如下所示: library/ ents/ index.js index.js package.json settings.json module.

我有一个节点应用程序。在这个应用程序中,我的目录结构如下:

library/
  ents/
    index.js
index.js
package.json
settings.json
module.exports = {
  "url":"http://www.example.com"
}
My settings.json文件如下所示:

library/
  ents/
    index.js
index.js
package.json
settings.json
module.exports = {
  "url":"http://www.example.com"
}
settings.json

{
  "url":"http://www.example.com"
}
文件中还有更多内容,但与这个问题无关。在./library/ents/index.js文件中,我有以下内容:

let settings = require('../../settings');
console.log(settings);

这就执行了。但是,我希望看到settings.json文件的内容打印出来。相反,我只看到
{}
。我真的不明白为什么会发生这种情况。

require用于加载amd模块,而不是以这种方式读取json,如果您希望将您的文件保持为真正的json,您可以尝试以下方法:

var fs = require('fs');
var obj = JSON.parse(fs.readFileSync('file', 'utf8'));

取自

require用于加载amd模块,而不是以这种方式读取json,如果您希望将文件保持为真正的json,您可以尝试以下方法:

var fs = require('fs');
var obj = JSON.parse(fs.readFileSync('file', 'utf8'));

取自

您可以将settings.json更改为settings.js,如下所示:

library/
  ents/
    index.js
index.js
package.json
settings.json
module.exports = {
  "url":"http://www.example.com"
}
然后


您可以将settings.json更改为settings.js,如下所示:

library/
  ents/
    index.js
index.js
package.json
settings.json
module.exports = {
  "url":"http://www.example.com"
}
然后


只是一个提醒-最好将其包装在try/catch中,FS操作和JSON.parse都可能引发异常。
require()
通常用于加载/解析JSON文件,您可以在中看到一个示例。只是一个提醒-最好将其包装在try/catch中,FS操作和JSON.parse都可能引发异常。
require()
通常用于加载/解析JSON文件,您可以在中看到一个示例。您是否尝试过使用JSON文件以
.JSON
文件结尾的requirement,如
require('../../settings.JSON')
?我复制了您的文件夹结构并复制粘贴了您的JSON和代码,效果很好。你确定你的json文件不是空的吗?您是否尝试过使用绝对路径?您是否尝试过使用JSON文件的requirement,并以
.JSON
文件结尾,例如
require('../../settings.JSON')
?我复制了您的文件夹结构并复制粘贴了您的JSON和代码,效果很好。你确定你的json文件不是空的吗?你试过使用绝对路径吗?