2015-06-14 49 views
2

IM用於創建以.json文件,這樣如何要求與module.exports以.json文件中的NodeJS

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文件完美結合。

請有誰知道爲什麼這不再起作用?我知道我可以有一個JSON對象,如果我只是刪除var日期=要求('./ JSON/dates.json');並將文件製作成一個json對象,但我真的不想重新組織所有這些數據。

+0

好的,謝謝,我將使用dates.js代替。我知道這不是一個有效的JSON對象,但我仍然有點疑惑,爲什麼過去爲我工作。 – WouldBeNerd

回答

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.jsondates.js

如果將文件保存爲.json,則不必使用module.exports,但實際上不能,因爲節點內置了對要求.json文件的支持。你甚至不必使用JSON.parse

1

我認爲你需要將文件保存爲* .js文件

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

工作正常。

因爲與module.exports它不是一個良好形成的JSON了;它是javascript