如何在nodeJS中使用module.exports来要求.json文件

时间:2015-06-14 13:51:32

标签: javascript json node.js

我习惯用这种方式创建.json文件

module.exports = [
{"year":2007,"month":1,"startDate":"2007-01-01","endDate":"2007-01-31"},
{"year":2007,"month":2,"startDate":"2007-02-01","endDate":"2007-02-28"},
{"year":2007,"month":3,"startDate":"2007-03-01","endDate":"2007-03-31"},
]
然后我就这样要求他们。

var dates = require('./JSON/dates.json');

过去,当我使用nodejs和grunt构建网站时,这一直有效。 但是现在我使用nodeJS创建一个服务器应用程序,我收到此消息

SyntaxError:G:\ Navision Reports \ JS ReportServer \ JSON \ dates.json:意外的令牌消息。我不明白发生了什么。它与.js文件完美配合。

请有人知道为什么这不再适用?我知道如果我只删除var dates = require('./ JSON / dates.json'),我可以拥有一个json对象;并将文件放入一个json对象,但我真的不想重新组织所有这些数据。

2 个答案:

答案 0 :(得分:4)

这是无效的JSON文件,您可以在任何代码格式化程序中检查它是否存在语法错误:

module.exports = [
{"year":2007,"month":1,"startDate":"2007-01-01","endDate":"2007-01-31"},
{"year":2007,"month":2,"startDate":"2007-02-01","endDate":"2007-02-28"},
{"year":2007,"month":3,"startDate":"2007-03-01","endDate":"2007-03-31"},
]

请以有效的方式格式化您的JSON,然后将其命名或将dates.json更改为dates.js

如果将文件保存为.json,则不必使用module.exports,实际上不能,因为节点内置了对需要.json文件的支持。您甚至不必使用JSON.parse

答案 1 :(得分:1)

我认为您需要将文件另存为* .js

require('./JSON/dates.js');

工作正常。

因为使用module.exports它不再是一个格式良好的JSON;这是javascript