node.js – 在快速路由文件中使用socket.io

我正在尝试将Socket.io与Node.js一起使用并发送到路由逻辑中的套接字.

我有一个相当标准的Express 3设置和一个位于路由中的server.js文件,然后我有一个index.js,它位于路径文件夹中,用于导出站点的所有页面/可公开访问的功能.所以他们看起来像:

exports.index = function (req,res) {
    res.render('index',{
        title: "Awesome page"
    });
};

与server.js中定义的路由类似:

app.get('/',routes.index);

我假设我必须在server.js中创建socket.io对象,因为它需要服务器对象,但是如何访问该对象并从index.js导出函数向它发出?

解决方法

您可以将路径文件设置为函数,并在需要该文件时传递Socket.IO对象.

module.exports = function(io) {
  var routes = {};
  routes.index = function (req,res) {
    io.sockets.emit('payload');
    res.render('index',{
      title: "Awesome page"
    });
  };
  return routes;
};

然后需要这样的路线:

var express = require('express');
var app = express();
var http = require('http');
var server = http.createServer(app);
var io = require('socket.io').listen(server);
var routes = require('./routes')(io);

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...