Как добавить дескриптор JSON к res.sendFile () в Express? - PullRequest
0 голосов
/ 10 марта 2020

После passport проверки подлинности я хочу передать данные req.user компоненту

, используя res.sendFile().

Я нашел этот ответ Здесь

Но я не знаю, как прочитать параметр options на компоненте в componentDidMount()

Может ли кто-нибудь мне помочь?

1 Ответ

2 голосов
/ 10 марта 2020

Не существует стандартного способа отправки смешанного JSON + содержимого файла с использованием только метода sendFile(). В качестве обходного пути вы можете отправить данные JSON в качестве настраиваемого заголовка ответа:

const options = {
    headers: {
        'Access-Control-Expose-Headers': 'User',
        'User': JSON.stringify(req.user),
    }
};

res.sendFile(path.join(__dirname, '../assets', 'index.html'), options);

Обратите внимание, что требуется заголовок Access-Control-Expose-Headers, чтобы ваш клиент всегда имел доступ к дополнительным header.

Затем, при условии, что вы используете axios на внешнем интерфейсе:

axios.get(YOUR_URL, response => {
    const user = JSON.parse(response.headers['User']);

    console.log('User Object', user);
});

С fetch:

response.headers.get('User');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...