2016-04-11 39 views
0

我是新來表達的,我想將user.username從jade文件傳遞到我的javascript文件中的端點函數。 這是index.js端點功能:如何將變量從Jade傳遞到Node.js端點函數

router.get('/userdetail', function(req, res) { 

    console.log(req.params) 
    console.log(req.body) 

    res.render('userdetail', { title: 'User Detail' }); 
}); 

這是我的玉文件:

extends layout 
block content 
    h1. 
     User List 
    ul 
     each user, i in userlist 
     li 
      a(href="/userdetail/#{user.username}")= user.username 

基本上,我想的鏈接指向用戶的頁面,而無需手動硬編碼每個用戶。如果有一些方法可以在angularjs中完成,那也可以。

編輯: 我編輯了我的代碼如下,但console.log()給了我未定義。

index.js:

router.get('/userdetail', function(req, res) { 

    console.log(req.query.username); 

    res.render('userdetail', { title: 'User Detail' }); 
}); 

userdetail.jade:

extends layout 
block content 
    h1. 
     User List 
    ul 
     each user, i in userlist 
      li 
       a(href="mailto:#{user.email}")= user.username  
       a(href="/userdetail/?username = {user.username}")= user.username 
+0

你將'title'傳遞給你的視圖(玉),但不是'user' ...你也需要傳遞它。如果我沒有弄錯,'req.query'應該包含GET參數,如果'username = xxx'不在URL中,那麼'req.query.username'將會是未定義的。 – mpen

+0

不幸的是,我在使用_getting_時遇到了問題。 :( – Left

+0

那麼...它存儲在哪裏?通常你必須查詢你的數據庫,拉出用戶列表,並將其傳遞給視圖... – mpen

回答

0

您可以設置用戶名作爲查詢參數

a(href="/userdetail/?username={user.username}")= user.username 

並獲得它request.query即request.query.username

請注意我可能沒有正確的玉語法

+0

console.log()只是給我未定義。 :( – Left

+0

發佈你的鏈接我認爲我的答案是錯誤的。語法應該是一個(href =「/ userdetail?username = {user.username}」)= user.username即刪除最後/ – jiveturkey

0

您需要將用戶對象作爲選項參數傳遞給res.render命令。 也許是這樣的:

router.get('/userdetail', function(req, res) { 

    locals = req.body.userlist 

    res.render('userdetail', locals); 

}); 

你只需要弄清楚如何檢索請求對象的用戶列表,然後將其傳遞到渲染選項。

+0

我在做什麼麻煩的是「檢索用戶」部分。 – Left

+0

請參閱上面的@ mpen的評論 – Dibson

相關問題