Javascript Node.js:require()和传递变量
使用npm启动了一个项目,该项目创建了特定的文件结构:Javascript Node.js:require()和传递变量,javascript,node.js,sockets,Javascript,Node.js,Sockets,使用npm启动了一个项目,该项目创建了特定的文件结构: www这似乎有点奇怪。但是,如果您坚持这样一种结构,那么您可以从www导出一个对象,该对象的属性为app,方法将套接字侦听器绑定为接收app对象作为参数 module.exports = { app: app, bindSocketListeners: function(server, io) { io.listen(server); return io; } }; 并称之为:
www这似乎有点奇怪。但是,如果您坚持这样一种结构,那么您可以从
www
导出一个对象,该对象的属性为app
,方法将套接字侦听器绑定为接收app
对象作为参数
module.exports = {
app: app,
bindSocketListeners: function(server, io) {
io.listen(server);
return io;
}
};
并称之为:
var appObj = require('../app');
var io = require('socket.io');
var app = appObj.app;
var server = http.createServer(app);
io = appObj.bindSocketListeners(server, io)
你的应用程序的入口点是什么?它似乎是
www
,那么为什么不将您的var io
放在该文件中呢?谢谢,非常有用。你为什么说这很奇怪?除非我想在我的www文件中为我的整个应用程序设置一百万个侦听器,否则在这些相应的页面中只为每个服务页面设置套接字侦听器会更有意义,此时我必须传递相同的io变量,该变量必须绑定到同一个服务器。通常的做法是什么?我可能错了,但对我来说,在一个用于应用程序处理和服务器创建的通用文件和另一个用于应用程序配置(用于设置中间件、路由、套接字等)的通用文件中似乎有更多的逻辑。然而,你是你的申请者的老板,你决定干杯