带Node.js和Handlebar的Firebase实时数据库
我正在尝试在Node.js网站上制作一个实时更新源,它将从Firebase实时数据库中获取更新。我设法在页面打开时加载更新,但我正在努力使它们实时更新。具体来说:我不知道如何通过手柄传递数据库引用对象 现在,我使用以下工具从数据库中提取更新:带Node.js和Handlebar的Firebase实时数据库,node.js,firebase,firebase-realtime-database,handlebars.js,Node.js,Firebase,Firebase Realtime Database,Handlebars.js,我正在尝试在Node.js网站上制作一个实时更新源,它将从Firebase实时数据库中获取更新。我设法在页面打开时加载更新,但我正在努力使它们实时更新。具体来说:我不知道如何通过手柄传递数据库引用对象 现在,我使用以下工具从数据库中提取更新: const getUpdates = () => { return new Promise((resolve, reject) => { try { const ref = firebaseApp.database(
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>
使用这种方法,行var更新={{{{json ref}}};抛出一个错误:
未捕获的语法错误:意外标记
那么我做错了什么?我以前很少使用把手,请原谅我的无知。{{{{json ref}}}}是把手/胡须模板,不是有效的javaScript代码。将该代码段直接放在脚本标记中,将其标记为JS代码
若要计算Handlebar表达式的值并使用javaScript将其分配给变量,可以尝试使用方法。比如:
var updates = Handlebars.compile('{{{json ref}}}');
在掌握了基本的车把示例之后,您可能还想看看。强烈建议在高负载生产环境中使用此选项
var updates = Handlebars.compile('{{{json ref}}}');