快递4:我有一个variables设置在app.js中,我需要把它发送到我的路线

这是我已经添加到我的app.js页面。 (使用快递发生器)

app.js

var express = require('express'); var socket_io = require( "socket.io" ); var app = express(); // Socket.io var io = socket_io(); app.io = io; 

现在,如果我要做到以下几点:

 io.on('connection', function (socket) { console.log("connection made!"); }); 

这很好用! 但我想知道,我怎么发送socket_io到我的路线? 例如,我有一个名为“游乐场”的路线,我想在该路线中专门使用socket_io。 我不知道该怎么做! 任何帮助将是伟大的,我希望我足够描述!

有很多方法可以做到这一点。

您可以将io作为函数parameter passing给您的路由模块:

app.js

 var express = require('express'); var socket_io = require( "socket.io" ); var app = express(); // Socket.io var io = socket_io(); var route = require('./route')(io); 

route.js

 module.exports = function(io) { io.on('connection', function (socket) { console.log("connection made!"); }); }; 

或者你可以导出一个init方法:

route.js

 module.exports.init = function(io) { io.on('connection', function (socket) { console.log("connection made!"); }); }; 

或者你可以为你的路线定义一个构造函数:

app.js

 var express = require('express'); var socket_io = require( "socket.io" ); var app = express(); // Socket.io var io = socket_io(); var Route = require('./route'); var r = new Route(io); r.doSomething(); 

route.js

 var Route = function(io) { this.io = io; io.on('connection', function (socket) { console.log("connection made!"); }); }; Route.prototype.doSomething = function() { console.log('hi'); }; // route.js module.exports = Route;