繁体   English   中英

从express发送的对象中输出适当的值到翡翠

[英]output to jade the appropriate value from an object sent from express

我试图弄清楚当用户转到"/users/:name"时如何在页面上检索适当的信息。 我要执行的操作是,如果user2登录,则打印出“欢迎use​​r2”,其他用户也一样。 我想这样做的方法是从"/users/:name"传递参数,并检查参数是否等于username值,然后打印出该值。(不知道这是否是一种安全的方法) )如何遍历我的特定对象列表并将其与参数进行比较?

我把它发送到我的翡翠文件中

{ list: 'userList', users: [ { password: 'pass1', username: 'user1' }, { username: 'user2', password: 'pass2' }, { username: 'user3', password: 'pass3' } ], address: '14459 70 th st city NY', desc: '3 floors', __v: 0, _id: 56baf181356641f01213295a }

该发送,因为我这样做:

app.get("/users/:name", function(req, res){
    // console.log(req.params.name)
    User.findOne({"users" : { $elemMatch: { username : req.params.name}}}, function(err, doc){
        console.log("test ", doc)
        res.render("users", {result : doc, name : req.params.name});
    })

})

玉:

html
    head
    body
        p= result
        p Welcome #{result.users[0].username} #{name} // prints out--> Welcome user1 user2 ||| when user2 signs in
        p= result.address
        h3= result.desc
        a(href="/logout") logout

然后,您可能想要这样做,为给定的参数输入选择适当的用户对象:

app.get("/users/:name", function(req, res){
    // console.log(req.params.name)
    User.findOne({"users" : { $elemMatch: { username : req.params.name}}}, function(err, doc){
        console.log("test ", doc)
        var users = result.users;
        var currentUser = {};

        for(var i=0;i<users.length;i++)
          if(users[i].username === req.params.name)
            currentUser = users[i];
        res.render("users", {result : doc, user : currentUser });
    });
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM