Проблема при импорте JSON через 'require' в Meteor - PullRequest
0 голосов
/ 07 апреля 2019

Следующий код работает для загрузки локального статического файла JSON:

var stories = require('../stories/stories.json');

Теперь я хочу загрузить файл на основе переменной, например, сделать что-то вроде этого:

var storiesPath = '../stories/stories.json';
var stories = require(storiesPath);

Но это вызывает ошибку:

Error: Cannot find module '../stories/stories.json'
    at require (packages/modules-runtime.js:123:19)
    at meteorInstall.server.main.js (server/main.js:7:15)

Есть ли способ заставить это работать?Я предполагаю, что вместо этого я мог бы загрузить свой файл через http-пакет Meteor, но я бы не стал добавлять другой пакет, если смогу его избежать.

Спасибо за ваши подсказки

1 Ответ

0 голосов
/ 08 апреля 2019

Как я уже говорил в комментарии, вы можете легко использовать переменную в требовании, например,

> var x = 'fs';
> require(x).readFile
[Function]

Так что это не проблема, с которой вы сталкиваетесь.Вы уверены, что ваш первый случай действительно работает?Это было бы удивительно.Я думаю, вы можете столкнуться с проблемами компоновки файлов проекта из-за использования относительного пути.Я бы держался подальше от этого.И, к счастью, вы можете довольно легко, используя актив !Вы можете поместить свой файл json в private/ в папку вашего проекта и затем использовать:

const stories = JSON.parse(Assets.getText('stories.json'));
...