我在node js
应用程序中使用不同的路由,现在我想在每条路由中使用socket.io
来创建我的node
和react js
应用程序实时。但是,我的 node js 应用程序具有以下结构。
router.js
const express = require('express');
const router = express.Router();
const worksheetController = require('../controllers/worksheet');
const attendenceController = require('../controllers/attendence');
router.route('/worksheets')
.get(
worksheetController.getWorksheet
)
.post(
worksheetController.validateWorksheet,
worksheetController.addWorksheet,
attendenceController.markAttendence
);
router.route('/attendances')
.get(
attendenceController.getAttendance
);
module.exports = router;
server.js
const express = require('express');
const router = require('./router');
const app = express();
app.use('/api', router);
app.listen('5000', () => {
console.log('Listening on port');
});
module.exports = app;
如何将socket.io用于不同的路由?
答案 0 :(得分:0)
您不需要关联快速路由和socket.io事件。他们是两个不同的东西。也许您可以像在快速路由中一样,在控制器中添加相关逻辑并从socket.io事件中调用函数。
例如:
const worksheetController = require('../controllers/worksheet');
io.on('connection', function (socket) {
socket.on('my event', function (data) {
const myData = worksheetController.getDataForOtherEvent(data);
console.log(myData);
});
});