如何将变量从Jade传递到Node.js端点函数

时间:2016-04-11 20:00:38

标签: javascript angularjs node.js express pug

我是表达新手,我想将jade文件中的user.username传递给我的javascript文件中的端点函数。 这是index.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()给了我undefined。

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

2 个答案:

答案 0 :(得分:0)

您可以将用户名设置为查询参数

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

并在request.query中访问它,即request.query.username

请注意我可能没有正确的jade语法

答案 1 :(得分:0)

您需要将用户对象作为options参数传递给res.render命令。 也许是这样的:

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

  locals = req.body.userlist

  res.render('userdetail', locals);

});

您只需要弄清楚如何从请求对象中检索用户列表,然后将其传递给渲染选项。