从 Express 发送的对象输出到 Jade 的适当值

output to jade the appropriate value from an object sent from express

本文关键字:Jade 对象 Express 输出      更新时间:2023-09-26

我试图弄清楚当用户转到"/users/:name"时,您将如何检索页面上的适当信息。 我正在尝试做的是打印出"欢迎用户2",如果用户2登录,其他用户也是如此。 我想这样做的方法是从"/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 });
    });
})