我想从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对象?这可能吗?有没有办法使这项工作?
答案 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;