在NodeJS中使用JSON对象进行函数指针映射

时间:2016-04-24 20:47:14

标签: javascript json node.js socket.io

我试图学习Socket.io,我是NodeJS的初学者。

我使用JSON对象作为一种键值存储,用于映射具有相关事件名称的回调函数。可能还有其他一些替代方法可以有效地做到这一点,我不知道。问题在于下面的代码,当我调用bob.printName()时,它会完美地打印JSON对象。但是当我使用callbacks['connection']()调用相同的函数时,它表示JSON对象未定义。我想知道其中的原因,并且也喜欢知道任何其他有效的替代方案,如PHP,如数组索引。

/***
** index.js
***/

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);


var User = require('./User');
var bob = new User();

var callbacks = {
    'connection': bob.printName
};

io.on('connection', function(socket){
    bob.printName();
    callbacks['connection']();
});

http.listen(3000, function(){
    console.log('listening on *:3000');
});


/***
** User.js
***/

var jsonObj = null;

function User() {

    this.jsonObj = {
        type: 'type',
        body: 'body'
    };
}

User.prototype.printName = function(){
    console.log(this.jsonObj);
}

module.exports = User;

0 个答案:

没有答案