2017-10-09 60 views
0

我有一個變量,我想從NodeJs傳遞到EJS文件。 我需要此變量來選擇是否顯示警報()。從nodejs傳遞變量到ejs文件

在運行我的代碼,我有 「nbrow沒有定義」

server.js

con.query("SELECT * FROM entreprises WHERE identifiant =?",user, function (err, result) { 
if (err) throw err; 
console.log(result); 
nbrow = result.length; 
if(nbrow > 0) 
{ 
    res.send("Connexion info :" + user + " " + password);  
} 
else 
{ 
    res.render("connexion",{ nbrow: nbrow}); 

} 
}); 

connexion.ejs

<script> 
     if(<%= nbrow %> = 0){ 
      alert("user not exist"); 
     } 
    </script> 

我已經搜索互聯網上可能是錯誤與我代碼,但我找不到任何可以幫助我的東西。

我的「如果」工作正常我的查詢相同,我已連接到我的數據庫。

RE編輯:有人問我的看法發動機的配置,我真的不知道那是什麼,但我想是這樣的:

app.set('views', './views'); 
app.set('view engine', 'ejs'); 
+0

您究竟在哪裏看到錯誤,並且它是否具有伴隨的堆棧跟蹤或行號?你是否在使用任何非默認的EJS配置選項,比如'strict'模式?您是否有其他的EJS模板可以在同一個應用程序中正常工作?您是否更改了代碼後是否重新啓動了服務器?視圖更改無需重新啓動即可重新加載,但其他更改通常不會。 – skirtle

+0

@skirtle當沒有它工作正常。一旦我添加它,當我加載頁面時,它將腳本顯示爲瀏覽器中的粗暴文本。 th錯誤行與if is是一樣的。總是有相同的錯誤信息(見下文)。我不使用嚴格的模式,這是我實際上唯一的ejs,是的,我重新啓動它的時間加載。 –

+0

你可以發佈你用來配置視圖引擎的代碼嗎? – skirtle

回答

1

您正在使用,而不是單一的===

它應該是:

<script> 
    if(<%= nbrow %> == 0){ 
     alert("user not exist"); 
    } 
</script> 

另外 - 不管這個具體的錯誤。

EJS呈現爲html文件,因此在瀏覽器中,您始終可以使用「查看源代碼」並查看實際呈現的HTML。這樣,您可以調試問題出在nbrow還是腳本中。

+0

幾分鐘前看到它,改變了它,但仍然是同樣的問題,在我的瀏覽器中,我看不到我的html,但是; as brut text –

+0

如果您看到實際的<%=那意味着您的ejs文件根本沒有被渲染。 –

+0

當我刪除它的渲染 –

0

我的猜測是,這個問題來源於此行:

nbrow = result.length; 

這假定nbrow已經被其他地方定義,但並非如此,因此"nbrow is not defined"錯誤

試圖把

const nbrow = result.length; 
+0

它在上面定義爲var nbrow = 0;試圖刪除這一行,並用const nbrow = result.length;替換它。但仍然不能與「讓」 –

0
<script> 
var nbrow = JSON.parse('<%- JSON.stringify(nbrow) %>'); 
if(nbrow == 0) 
    alert("user not exist"); 
</script> 
:在它的前面或 const

我通過將變量進行字符串化並將其解析回來

相關問題