簡體   English   中英

有條件的Jade模板,用戶登錄

[英]Conditional Jade templates, user logins

第一個問題

我目前正在開發Express / Jade Web應用程序,並且對它還很新。 我遵循了一些教程和示例,將大部分后端組合在一起,並擁有完整的堆棧。 我當前要執行的操作是檢查用戶當前是否已登錄並根據檢查結果來渲染玉器。

我知道有人可以將JavaScript原生添加到玉器模板中。 我有一個主頁,並希望根據當前用戶的登錄狀態顯示不同的導航欄。

以前在我的路由中,我可以簡單地檢查一下

app.get('/', function(req, res){
    if (req.cookies.user == undefined || req.cookies.pass == undefined)

    other code...

可以在Jade模板中完成同樣的操作嗎? 我將如何處理? 這是一個不好的方法嗎,有沒有更簡單或更好的方法來解決這個問題?

第二個問題

我現在很好奇的是,這個請求對象是否只是我可以訪問並使用Jquery進行檢查的DOM中的某個對象?

我在這里遇到的跟進問題是javascript特定的。 我來自Java OO背景,這是我第一次使用JS,它是一種功能語言,這讓我感到困惑。 例如,將上面的匿名函數稱為app.get函數的第二個參數,它從哪里獲取req和res? Express / node是否只是簡單地將其發送給請求和響應,或者它是如何工作的?

關於第一個問題,通常將這種檢查留在玉器文件的外面以保持文件的清潔狀態這不是一個壞方法。

您可以嘗試將Objects暴露給res.render ,以使數據可用於文檔。 因此,為了避免玉模板中的許多javascript代碼只是公開一個用戶對象。

var user={loggedIn:false}

通過使用中間件模式進行表達,每次都會傳遞大約第二個問題 reqres ,直到res.end res.sendres.endres.render (及其他)來停止中間件堆棧的執行。

一個簡單的例子是

app.get("/",
 function(req,res,next){
    req.hello=world; if(next){next()};
 }
 ,function(req,res){
    res.send(200,req.hello);
 });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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