【发布时间】:2014-08-27 21:36:02
【问题描述】:
这就是交易:我正在尝试在一个快速项目中使用 socket.io。在 Express Js 4 发布后,我更新了我的 express-generator,现在应用程序初始函数进入 ./bin/www 文件,包括那些变量(www 文件内容:http://jsfiddle.net/avMa5/)
var server = app.listen(app.get('port'), function() {..}
(通过npm install -g express-generator检查,然后express myApp
话虽如此,让我们记住 socket.io 文档是如何要求我们触发它的:
var app = require('express').createServer();
var io = require('socket.io')(app);
好的,但我不能在 app.js 中这样做,就像推荐的那样。这应该在 ./bin/www 中完成才能正常工作。在 ./bin/www 中,这是我可以做的让它工作:
var io = require('socket.io')(server)
好吧,这行得通,但我不能在其他任何地方使用 io var,而且我真的不想将我的 socket.io 函数放在 www 文件上。
我想这只是基本语法,但我无法让它工作,即使在 www 文件上使用 module.exports = server 或 server.exports = server 或 module.exports.io = app(io) 也不行
所以问题是:如何使用 socket.io 将此 /bin/www 文件作为我的应用程序的起点?
【问题讨论】:
-
您不必将导入放在
./bin/www.中。只需将其放在您的var app所在的相同位置即可。 -
我希望人们不要再推荐 express-io。它已经过时,不再维护。
-
@Mritunjay 谢谢你,但它没有解决它:/
-
@BenFortune 抱歉,我会记住这一点的。
-
@alandarev var app = express() ??我确实试过了,没有成功
标签: javascript node.js express socket.io