【发布时间】:2015-08-05 06:32:59
【问题描述】:
我对 node 和 socketio 比较陌生。我想要实现的是使用护照验证用户并将记录的用户总数发送到视图。这样如果一个登录的用户可以看到当前登录用户的总数,并且如果一个用户登录,则当其他人登录时,计数会减少或增加。
使用 passport.socketio 从 socket.io 连接访问经过身份验证的护照用户信息。
在回调中,我将用户名存储在猫鼬集合中,并相应地在注销时从集合中删除用户。我计算了模型中需要传递并绑定到视图的用户数。 Jade 是模板引擎。下面是我尝试将计数传递给 home.jade 的 onAuthorizeSuccess 回调的样子。
function onAuthorizeSuccess(data, accept) {
var username = data.user.username;
var User = mongoose.model('loggedusers', userSchema);
var user = new User({
username: username
});
user.save(function (err, data) {
if (err) console.log(err);
else {
console.log('Saved : ', data);
}
User.count({}, function (err, c) {
console.log('Count is ' + c);
app.get('/', function (req, res) {
res.render('home', {
count: {
countData: c
}
});
});
});
});
console.log('successful connection to socket.io ');
accept(); //Let the user through
}
在翡翠视图中我尝试使用
li Logged Users ---> #{countData.c}
但是,countData 在视图中是未定义的。
我应该如何将动态值从服务器渲染到jade中的视图?
非常感谢任何帮助。
谢谢, 阿纳布
【问题讨论】:
标签: node.js pug passport.js