[英]Node.js and express + hbs - unexpected identifier when passing variable to template
我有一個節點表達應用程序,我試圖在渲染我的index.hbs
文件時傳遞一個變量,如下所示:
<!DOCTYPE html> <html> <body> Hello. <a href="/auth/facebook">Login with Facebook</a> {{req}} <!-- this works fine(ish) --> <script> var request = {{req}}; // This throws an error console.log(request); </script> </body> </html>
{{req}}
模板變量按預期輸出為[object Object]
,但是當嘗試通過javascript傳遞它時,我在控制台中拋出了Unexpected identifier
。 我嘗試修改使用三個花括號而不是雙花括號,但這似乎沒有什么區別。
使用javascript設置模板變量的正確方法是什么?
這是因為您的模板引擎僅用字符串替換{{req}}。
如果您想在javascript代碼中使用{{req}}。 使用JSON.stringify(req)
將模板引擎作為參數和javascript標記傳遞,使用三重“triple-stash” {{{req}}}
將字符串解析為對象
關於三重存儲,可以在HTML Escaping部分找到http://handlebarsjs.com/上的文檔
希望能幫助到你
編輯:
在這里找到類似的答案在node / express + ejs中將對象傳遞給客戶端?
我和EJS有同樣的問題。 我能夠通過字符串化對象將對象從我的Express服務器傳遞給模板:
//express server
res.render('index', {req: JSON.stringify(data)})
//template
var request = {req}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.