2014-04-12 224 views

回答

4

您無法直接在瀏覽器窗口的客戶端javascript中的節點應用程序中獲取服務器端變量。雖然他們支持相同的編程語言,但它們只是兩種不同的運行時間。

你的問題是關於如何客戶端JavaScript可以溝通服務器端資源如/auth。選項如下:

在您的網頁上用jade模板呈現腳本標記中的數據。例如:

html(lang="en") 
    head 
    title= pageTitle 
    script(type='text/javascript'). 
    var generatedData = {variable:true} 
body 

然後你可以用alert(generatedData)來得到它。請注意,數據必須是可序列化的數據,無需任何功能或參考。

通常人們使用JSON,這意味着您需要編寫一些客戶端代碼與服務器端資源進行通信。像在客戶端使用jQuery:

$.get('/auth').done(function(data){ alert(data); }); 

使用服務器端代碼,其中它在JSON通過自動快速響應對象發送數據:

app.get('/auth', function(req, res) { 
    res.send({ 
     variable: true 
    }); 
}); 
-1

目的{variable:true}將只可用在auth.jade當玉編譯它。您可以將它添加到隱藏的元素中,並使用客戶端JavaScript讀取它,或者更好的方法是將它作爲json從ajax調用中獲取。

相關問題