快递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;