Javascript Express 4:我在app.js中设置了一个变量,我需要将它发送到我的路由

Javascript Express 4:我在app.js中设置了一个变量,我需要将它发送到我的路由,javascript,node.js,express,socket.io,Javascript,Node.js,Express,Socket.io,下面是我添加到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; var express = require('express'); var socket_io = require( "socket.i

下面是我添加到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;
var express = require('express');
var socket_io = require( "socket.io" );

var app = express();

// Socket.io
var io = socket_io();

var route = require('./route')(io);
module.exports = function(io) {
    io.on('connection', function (socket) {
       console.log("connection made!");
    });
};
module.exports.init = function(io) {
    io.on('connection', function (socket) {
       console.log("connection made!");
    });
};
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();
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;
现在,如果我要做以下事情:

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

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

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

您可以将
io
作为函数参数传递给路由模块:

app.js

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

var app = express();

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

var app = express();

// Socket.io
var io = socket_io();

var route = require('./route')(io);
module.exports = function(io) {
    io.on('connection', function (socket) {
       console.log("connection made!");
    });
};
module.exports.init = function(io) {
    io.on('connection', function (socket) {
       console.log("connection made!");
    });
};
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();
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;
route.js

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

var app = express();

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

var app = express();

// Socket.io
var io = socket_io();

var route = require('./route')(io);
module.exports = function(io) {
    io.on('connection', function (socket) {
       console.log("connection made!");
    });
};
module.exports.init = function(io) {
    io.on('connection', function (socket) {
       console.log("connection made!");
    });
};
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();
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;
或者您可以导出
init
方法:

route.js

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

var app = express();

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

var app = express();

// Socket.io
var io = socket_io();

var route = require('./route')(io);
module.exports = function(io) {
    io.on('connection', function (socket) {
       console.log("connection made!");
    });
};
module.exports.init = function(io) {
    io.on('connection', function (socket) {
       console.log("connection made!");
    });
};
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();
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;
或者,您可以为路线定义构造函数:

app.js

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

var app = express();

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

var app = express();

// Socket.io
var io = socket_io();

var route = require('./route')(io);
module.exports = function(io) {
    io.on('connection', function (socket) {
       console.log("connection made!");
    });
};
module.exports.init = function(io) {
    io.on('connection', function (socket) {
       console.log("connection made!");
    });
};
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();
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;
route.js

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

var app = express();

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

var app = express();

// Socket.io
var io = socket_io();

var route = require('./route')(io);
module.exports = function(io) {
    io.on('connection', function (socket) {
       console.log("connection made!");
    });
};
module.exports.init = function(io) {
    io.on('connection', function (socket) {
       console.log("connection made!");
    });
};
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();
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;

你能详细说明你的问题吗?例如,为什么要在正常路由中使用套接字io?(您需要从正常路由或其他方式向socketio客户端发送消息?)。根据您的要求,会有不同的solutions@TanNguyen我想在playway.js页面上使用socket.io,特别是在我使用实时聊天应用程序时。它将位于localhost:8000/playway,我刚刚开始学习socket.io和node,所以据我所知,这可能是错误的。我仍然不确定您为什么需要访问socket\u io(socket io服务器实例本身)。如果您需要访问客户机(连接到socket.io服务器),您可以在尝试传递变量时检查此答案,就像您在第一个示例中遇到的一样,我总是遇到错误“无法调用'IndexOf'未定义的方法”。