Javascript 如何在nodeJS中要求.json文件和module.exports
我习惯用这种方式创建.json文件Javascript 如何在nodeJS中要求.json文件和module.exports,javascript,json,node.js,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-
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创建了一个服务器应用,我收到了这个消息
语法错误:G:\Navision Reports\JS ReportServer\JSON\dates.JSON:意外的令牌消息。我不明白发生了什么事。它可以完美地处理.js文件
有人知道为什么这不再有效吗?我知道如果我只删除var dates=require('./json/dates.json'),我就可以拥有一个json对象;并将文件变成一个json对象,但我真的不想重新组织所有这些数据 这不是有效的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
,则不必使用模块.exports
,因为节点内置了对.json
文件的支持。您甚至不必使用JSON.parse
我认为您需要将文件保存为*.js
require('./JSON/dates.js');
很好
因为module.exports不再是格式良好的JSON;这是javascript好的,谢谢,我将改用dates.js。我知道它不是一个有效的JSON对象,但我仍然有点困惑,为什么过去它对我有用。(在nodejs中)现在你可以
只需引用名称而不使用.JSON
就可以要求一个JSON文件。例如,constjsondata=require(“./myjsonfile”)
在vscode中,我没有得到任何有关它的信息,但它确实有效(可能有一个扩展)。