我习惯用这种方式创建.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对象,但我真的不想重新组织所有这些数据。
答案 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