【问题标题】:Nodejs comparison fails,Nodejs比较失败,
【发布时间】:2017-11-26 19:27:39
【问题描述】:

我正在尝试检查 2 个对象的值,一个是猫鼬返回的,一个是护照 js 返回的。

app.get('/user-area', isLoggedIn, function(req, res){
    User.find({}, function(err, users){
        if(err) throw err;

        res.render('admin/user-area/allUsers', {
            user: req.user,
            users: users,
            logged_user: req.user._id
        });
    });
});

在上面的代码中,我将值解析到 ejs 文件中,在 ejs 文件上我正在做一个简单的比较以过滤掉一些数据。

<ul>
    <%for(var i = 0; i < users.length; i++){%>
        <%if(logged_user != users[i]._id){%>
            <li><%=users[i].local.username%></li>
        <%}%>
    <%}%>
</ul>

我正在尝试使用简单的 if 语句将登录用户从打印到屏幕上过滤掉,当作为字符串在屏幕上打印时,它们似乎完全相同,但由于某种原因我无法找到,它们if 语句失败,

【问题讨论】:

    标签: node.js


    【解决方案1】:

    我的猜测是,一个是 ObjectId,另一个是 String,所以它们永远不会相等。

    查看此答案以使用 equals() 比较 ObjectId:

    https://stackoverflow.com/a/11638106/828573

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-04
      • 2011-07-09
      • 1970-01-01
      • 2018-07-21
      相关资源
      最近更新 更多