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

How to pass variables from Jade to Node.js endpoint function

本文关键字:Node js 端点 函数 变量 Jade      更新时间:2024-04-25

我刚开始表达,我想把user.username从一个jade文件传递到我的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()给了我未定义的代码。

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

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

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

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

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

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

router.get('/userdetail', function(req, res) {
  locals = req.body.userlist
  res.render('userdetail', locals);
});

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