首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从passport.socketio到玉视图呈现动态值

从passport.socketio到玉视图呈现动态值
EN

Stack Overflow用户
提问于 2015-08-05 06:32:59
回答 2查看 158关注 0票数 0

我对节点和套接字比较陌生。我试图实现的是使用护照对用户进行身份验证,并将登录的用户总数发送到视图中。这样,如果登录用户可以看到当前登录用户的总数,如果用户登录,则当其他用户登录时,计数会减少或增加。

使用passport.socketio从socket.io连接访问经过身份验证的护照用户信息。

在回调中,我将用户名存储在一个猫鼬集合中,并相应地在注销时将用户从集合中删除。我得到了模型中需要传递并绑定到视图中的用户数量。Jade是模板引擎。下面是我的onAuthorizeSuccess回调的样子,我试图将计数传递给home.jade。

代码语言:javascript
复制
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
}

在玉图中,我试着用

代码语言:javascript
复制
li Logged Users ---> #{countData.c}

但是,countData在视图中没有定义。

如何将动态值从服务器呈现到玉中的视图?

任何帮助都非常感谢。

谢谢你,阿纳布

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-05 06:44:07

您的变量是错误的,您应该用#{count}代替:

代码语言:javascript
复制
res.render('home', {count: c});
票数 0
EN

Stack Overflow用户

发布于 2015-08-21 14:18:29

弄明白了。

通过套接字向服务器内容提供一个函数,该控件可以帮助在前端进行更新。

代码语言:javascript
复制
module.exports = function (socket) {

setInterval(function () {

var UserSchema = require('mongoose').model('loggedusers');

UserSchema.count({}, function(err, c){

    console.log('Count is ' + c);
    socket.emit('send:count', {
        count: c
    });

   });
}, 1000);
};

角控制器angular.module(‘myApp.Controller’,[])。控制器(‘AppCtrl’,函数($scope,套接字){socket.on(发送:计数,函数(数据){ $scope.count = data.count;});};

而在翡翠中,{{count}}和add div.container(ng-controller='AppCtrl')应该给出前端的更新计数。

阿纳布

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31824981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档