Как я могу сделать список в реальном времени, используя Node.js и Firebase - PullRequest
0 голосов
/ 16 марта 2020

Я использую Использование Firebase и Node.js Я пытаюсь создать список в реальном времени, см. Код ниже:

router.get('/', (req, res) => {
    db.ref('contacts').on('value', (snapshot) => {
        const data = snapshot.val();
        console.log(data);
        res.render('index', { contacts: data });
    });
});

, но выдает мне эту ошибку

Ошибка [ERR_HTTP_HEADERS_SENT]: невозможно установить заголовки после их отправки клиенту

1 Ответ

0 голосов
/ 16 марта 2020

Ваш код пытается отправить несколько ответов по маршруту Express. Сообщение об ошибке говорит вам, что это невозможно. Когда вы звоните res.render(), вы объявляете полный ответ отправляемому клиенту, и это все, что вы можете отправить. Клиенту придется сделать еще один запрос на получение обновления.

Если вы хотите, чтобы сокет оставался открытым для клиента, чтобы со временем отправлять обновления, вам понадобится веб-сокет или какой-то другой способ сохранить соединение открыто. express -ws - это одна вещь, которую стоит попробовать на бэкэнде. Обратите внимание, что это не будет работать с облачными функциями и, возможно, с другими безсерверными провайдерами.

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