Javascript Express-如何在路由文件中使用io.socket.emit?
我有一个带有express(nodeJS)的应用程序 在DB上写入一些数据时要发出io.socket,所以需要在路由文件(ex./routes/save.js)中发出 这是我的app.jsJavascript Express-如何在路由文件中使用io.socket.emit?,javascript,node.js,express,socket.io,Javascript,Node.js,Express,Socket.io,我有一个带有express(nodeJS)的应用程序 在DB上写入一些数据时要发出io.socket,所以需要在路由文件(ex./routes/save.js)中发出 这是我的app.js var express = require('express'); var save = require('./routes/save'); var http = require('http'); var app = express(); var server = require('http').Server
var express = require('express');
var save = require('./routes/save');
var http = require('http');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
......
io.on('connection', function(socket){
socket.on('newTweet', function(msg){
io.emit('newTweet', msg);
});
});
app.use('/save', save);
.....
module.exports = app;
server.listen(3000, function () {
var host = server.address().address
var port = server.address().port
})
你能帮我在/routes/save.js
中编写io.socket.emit('event')
?我找到了一种方法
在应用程序之前使用('/save',save)需要在app.js中编写以下代码
app.use(function(req, res, next) {
req.io = io;
next();
});
然后从save.js中的req
参数获取io
比如说
var express = require('express');
var router = express.Router();
router.post('/', function(req, res, next) {
.....
var io = req.io;
io.emit('newTweet', 'test');
.....
});
module.exports = router;
如果你知道比这条更好的路,请告诉我。我找到了一条路
在应用程序之前使用('/save',save)
需要在app.js中编写以下代码
app.use(function(req, res, next) {
req.io = io;
next();
});
然后从save.js中的req
参数获取io
比如说
var express = require('express');
var router = express.Router();
router.post('/', function(req, res, next) {
.....
var io = req.io;
io.emit('newTweet', 'test');
.....
});
module.exports = router;
如果您知道比这个更好的方法,请告诉我。您可以像这样将io对象传递给您的路由:
var app = express();
var io = socket_io();
app.io = io;
require('./routes/index')(app,io);
您可以像这样将io对象传递到路由:
var app = express();
var io = socket_io();
app.io = io;
require('./routes/index')(app,io);
我刚刚将io对象传递给routes你可以在下面查看我的答案我刚刚将io对象传递给routes你可以在下面查看我的答案