Я пытаюсь создать прямую ленту обновлений на веб-сайте Node.js, которая будет извлекать обновления из базы данных Firebase в реальном времени.Мне удается загружать обновления при открытии страницы, но я изо всех сил стараюсь обновить их в режиме реального времени.Чтобы быть конкретным: я не могу понять, как передать объект ссылки на базу данных через Handlebars.
Так что теперь я извлекаю обновления из базы данных с помощью:
const getUpdates = () => {
return new Promise((resolve, reject) => {
try {
const ref = firebaseApp.database().ref('liveUpdates');
resolve(ref.once("value"), ref);
} catch (e) {
reject(e);
}
});
};
И затем отрисовываюстраница:
exports.loadDashboard = (req, res) => {
getUpdates().then((updates, ref) => {
const updatesList = updates.val();
res.render('index', { updatesList, ref });
return;
});
};
Тогда я бы хотел сделать что-то подобное в файле .hbs:
<script>
var updates = {{{json ref}}};
updates.on("value" () => {
//Handle update
});
</script>
Помощник json Handlebars:
json: (content) => {
return JSON.stringify(content);
}
При таком подходе строка var updates = {{{json ref}}};выдает ошибку:
Uncaught SyntaxError: неожиданный токен;
Так что я делаю не так?Я не очень много работал с Рульом, поэтому извините за мое невежество.