And*_*cia 6 javascript node.js
在我的Express 4路线中添加Socket.io的时间非常艰难.在我的routes/index.js中我有:
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function (req, res, next) {
res.render('index', { title: 'Express' });
});
router.post('/message', function(req, res) {
console.log("Post request hit.");
// res.contentType('text/xml');
console.log(appjs);
io.sockets.emit("display text", req);
// res.send('<Response><Sms>'+req.body+'</Sms></Response>');
});
module.exports = router;
Run Code Online (Sandbox Code Playgroud)
但是io是未定义的.我已经看到了几个如何做到这一点的例子,但没有一个对我有用.任何帮助,将不胜感激.
您需要将socket.io变量传递给路由器模块,以便它具有访问权限.您可以通过将模块包装在函数调用中来完成此操作.
var express = require('express');
var router = express.Router();
/* GET home page. */
var returnRouter = function(io) {
router.get('/', function(req, res, next) {
res.render('index', {
title: 'Express'
});
});
router.post('/message', function(req, res) {
console.log("Post request hit.");
// res.contentType('text/xml');
console.log(appjs);
io.sockets.emit("display text", req);
// res.send('<Response><Sms>'+req.body+'</Sms></Response>');
});
return router;
}
module.exports = returnRouter;
Run Code Online (Sandbox Code Playgroud)
然后,当您导入此路线时,您将调用此函数,如: require(./routefile)(io)
这是一篇关于创建需要传递变量的模块的好文章:Node.Js,Require和Exports
| 归档时间: |
|
| 查看次数: |
4185 次 |
| 最近记录: |