在express 模板引擎的路由中加载socket.io
来源:互联网 发布:苹果微信数据损坏失败 编辑:程序博客网 时间:2024/05/17 23:44
看了很多socket.io结合express的例子,只是一些单一的demo。很少有提到在express模板引擎中如何加载socket.io,今天琢磨了半个下午,好不容易搞出来了,这里分享给大家。
首先我们要知道的是,socket.io是基于http的。 也就是说http之上,有一个app,也有一个io。
如果我希望在某个路由中用socket.io,那么就需要把io挂载到router上export出来,然后再赋给app,再export出来,然后又最终的http server调用,思路就是这样。
先看下router.js的代码, 这里用的是pug(jade)来渲染的。
var express = require('express');var router = express.Router();router.get('/', function (req, res, next) { res.render('test');});router.io = function (io) { io.on('connection', function (socket) { console.log('connected'); }); return io;}module.exports = router
我们将io作为router的一个属性输出。
app.js的部分代码
var router = require('./routes/router');app.io = router.io;...module.exports = app;
再把router属性传递给app.
这是 ./bin/www 的部分代码
/** * Create HTTP server. */var server = http.createServer(app);var io = require('socket.io')(server);app.io(io);
我们把在http上建立的io对象当成一个参数赋给 app.io。
这样就能完美执行了。
你的代码都可以写在 router.js 的router.io 的function中
router.io = function (io) { /** * 这里写代码 */ return io;}module.exports = router
阅读全文
0 0
- 在express 模板引擎的路由中加载socket.io
- 在Express中使用模板引擎
- 在Express中使用Handlebars模板引擎
- 在express中使用ejs模板引擎
- 在Express项目中使用Handlebars模板引擎
- 在Express和Socket.IO中使用session
- 在Express和Socket.IO中使用session,聊天室
- 19.Express 中使用模板引擎
- Express中使用自定义视图模板引擎
- 17.express 的模板引擎使用
- express ejs模板引擎
- Express修改模板引擎
- Socket.IO和express
- socket.io (nodejs+express)
- Express+socket.io
- 路由和模板引擎的使用
- Node.js进行Web开发(一)--Express,路由控制,模板引擎
- Express框架中如何引用ejs模板引擎
- Mybatis传入多个参数和${}与#{}的区别
- 蓝桥杯斐波拉切数列踩过的坑
- ngnix配置
- javascript定义个json对象
- 借工业物联网融合IT与OT 驱动制造服务化转型
- 在express 模板引擎的路由中加载socket.io
- 【Cocos2d-x游戏开发lua篇之基础】加载图片与设置按钮监听事件
- java的变量和常量以及常量池
- Web services快速入门
- Springmvc在限制只能在一处登陆
- 删除指定数据项后的级联删除注意事项
- php 无限递归分类
- python正则化
- 希望今天没有 bug ~