无法调用undefined(express和socket.io)的“on”方法

时间:2014-10-01 20:39:42

标签: node.js express socket.io

我想从express

的app.js导出socket.io对象

我的app.js文件位于:http://pastebin.com/Kfny4yVK

我的bin / www文件位于:http://pastebin.com/qGhPm6KE

在我的app.js中我做了:

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

在路径文件中我做了:

var io = require(__dirname+'/../app.js').io;

然而,当我打电话给:

io.on

我收到一个未定义的对象错误。知道为什么会这样吗?看起来nodejs在导出时以某种方式修改io对象?这可能吗?有没有办法使这项工作?

1 个答案:

答案 0 :(得分:2)

使用Express v4.x我使用以下命令导出socket.io对象。

APP.JS

var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
//Export sio module so socket.io can be used in other modules
module.exports.sio = io;   //ADDED this

OTHER_FILE.JS

//Import sio module from app.js
var io = require('../app.js').sio;