2015-06-14 2 views
2

им используется для создания .json файлы таким образомКак требовать .json файл с module.exports в 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 и хрюкал, чтобы создавать веб-сайты. Но теперь im, используя nodeJS для создания серверного приложения, я получаю это сообщение

SyntaxError: G: \ Navision Reports \ JS ReportServer \ JSON \ date.json: Неожиданное токеновое сообщение. Я не понимаю, что происходит. Он отлично работает с файлами .js.

Пожалуйста, кто-нибудь знает, почему это больше не работает? Я знаю, что у меня мог бы быть объект json, если я просто удалю var date = require ('./ JSON/date.json'); и сделать файл в один объект json, но я бы предпочел не реорганизовать все эти данные.

+0

Ok Спасибо, я буду использовать date.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.json к dates.js.

Если вы сохраняете файл как .json, вам не нужно использовать module.exports, вы на самом деле не можете, потому что узел имеет встроенную поддержку для получения требуемых .json файлов. Вам даже не нужно использовать JSON.parse.

1

Я думаю, что вам нужно, чтобы сохранить файл как * .js

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

работает отлично.

Потому что с module.exports его не хорошо сформированный JSON; это javascript

Смежные вопросы