输出到来自快递发送的对象的适当值

时间:2016-02-10 18:37:13

标签: javascript express mongoose iteration pug

我试图找出当用户转到"/users/:name"时如何在网页上检索相应信息。我想要做的就是打印出来#34;欢迎用户2"如果user2已登录,则其他用户也是如此。我想这样做的方法是从"/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

1 个答案:

答案 0 :(得分:0)

然后你可能想要这样做,为给定的param输入选择合适的用户对象:

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 });
    });
})