Чтение экспортированной переменной из удаленного файла js - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть файл JavaScript, который мне нужно прочитать.Мне удалось прочитать его как строку с помощью FileReader, но я хочу прочитать объект, который экспортируется в этот файл.

Вот так выглядит мой файл:

const carsColor = {
    audi: 'blue',
    bmw: 'black',
};

export default carsColor;

Читать какa String:

loadFile = async () => {
    try {
        const response = await fetch(PATH_TO_FILE);
        const blob = await response.blob();
        let read = new FileReader();
        read.onload = function() {
            console.log(read.result); // read.result returns the entire file as a string
        };
        read.readAsBinaryString(blob); 
    }
    catch(e) {
        console.log(e);
    }
}

Есть ли способ получить объект carsColor из файла?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Измените ваш файл так, чтобы он возвращал только json, и проанализируйте его

файл

{
    audi: 'blue',
    bmw: 'black',
}

функция загрузки

loadFile = async () => {
    try {
        const response = await fetch(PATH_TO_FILE);
        const blob = await response.blob();
        let read = new FileReader();
        read.onload = function() {
            console.log(JSON.parse(read.result)); 
        };
        read.readAsBinaryString(blob); 
    }
    catch(e) {
        console.log(e);
    }
}
0 голосов
/ 14 февраля 2019

Fetch API загружает не JS-модули, а файлы.Он не оценивает ваш файл JavaScript.

Я бы вместо этого использовал пакет для исходного кода (например, webpack ).Тогда вы сможете использовать свой модуль JavaScript с require():

// either this
const carColors = require('./carColors');
// or this
import carColors from './carColors';

console.log(carColors.audi);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...