Nodejs比较失败,

时间:2017-06-23 09:17:32

标签: node.js

我正在尝试检查2个对象的值,一个是mongoose返回的,另一个是护照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语句中失败,

1 个答案:

答案 0 :(得分:1)

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

请参阅此答案以使用equals()比较ObjectIds:

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