簡體   English   中英

Node.js和express + hbs - 將變量傳遞給模板時的意外標識符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM