这听起来可能很简单。有一个very similar answer,但不知何故,我的代码行为突然,让我抓狂。我已经在这上面花了4-5个小时。任何帮助都是最好的。
我正在建立一个Socket.IO聊天应用程序使用节点+快速+护照。我想将当前用户的userId与连接的其他用户的users进行比较。我想向他展示除了他自己以外的所有用户在Socket.IO中聊天。
为了清晰起见,请阅读代码注释:
users.js
app.get('/users', function (req, res) {
var connectedUsers = require('../app').chatUsers; // => This is an array of all logged in user and I am getting this all correctly.
if (req.isAuthenticated()) {
res.render('users', {
currentUser: req.user,
users: connectedUsers,
title: 'OnLineUsers'
});
}
});users.ejs
<h3>CurrentUser : <%- currentUser.id %></h3> // => This Prints like **abcdefg**
<% for(var i = 0;i < users.length ; i++){ %>
<h3>UserID: <%- users[i].id %></h3> // => This also prints the same **abcdefg** if only one user is connected.
<% if( currentUser.id !== users[i].id){ %> // => But this Conditional Operator does not works and show the current user himself.
<ul>
<li>
<h3> <%= users[i].name %></h3>
<a href="/socket" id="chatRoomUrl">
<button type="submit" class="btn-success">Chat</button>
</a>
</li>
</ul>
<% } %>
<% } %>提前谢谢。如果我有什么愚蠢的错误,请原谅我浪费您的时间。
发布于 2016-08-11 20:26:53
您的代码很好。也许在两个属性中有空间。尝试:
currentUser.id.trim() !== users[i].id.trim()发布于 2017-03-26 03:05:53
更改以下行,请注意更改:
<h3> <%= users[i].name %></h3>要这样做:
<h3> <%- users[i].name %></h3>https://stackoverflow.com/questions/38879882
复制相似问题