我对node和socketio比较陌生。我想要达到的目的是使用护照对用户进行身份验证,并将记录的用户总数发送到视图。这样,如果已登录的用户可以看到当前已登录用户的总数,并且如果用户登录,则当其他人分别登录时,该计数会减少或增加。
使用passport.socketio从socket.io连接访问经过身份验证的护照用户信息。
在回调中,我将用户名存储在猫鼬集合中,并因此在注销时将用户从集合中删除。我得到了需要传递并绑定到视图的模型中用户的数量。Jade是模板引擎。下面是我的onAuthorizeSuccess回调的外观,就像我尝试将计数传递给home.jade的样子。
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中的视图渲染动态值?
任何帮助,不胜感激。
谢谢,Arnab
您的变量是错误的,应改为#{count}
使用:
res.render('home', {count: c});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句