Node.js 未捕获类型错误:app.getSocketIo不是socket.io中的函数
我得到了错误,正如我在问题中所展示的,我使用答案作为解决方案,但我得到了错误 这是app.js的代码Node.js 未捕获类型错误:app.getSocketIo不是socket.io中的函数,node.js,function,socket.io,Node.js,Function,Socket.io,我得到了错误,正如我在问题中所展示的,我使用答案作为解决方案,但我得到了错误 这是app.js的代码 const server = require('http').createServer(app); const io = require('socket.io')(server); io.on('connection', async (socket) => { console.log('socket connected', userId) if (io.nsps['/'
const server = require('http').createServer(app);
const io = require('socket.io')(server);
io.on('connection', async (socket) => {
console.log('socket connected', userId)
if (io.nsps['/'].adapter.rooms["room-" + userId] && io.nsps['/'].adapter.rooms["room-" + userId].length > 0) userId++;
socket.join("room-" + userId);
io.sockets.in("room-" + userId).emit('connectToRoom', "You are in room no. " + userId);
io.sockets.in("room-" + userId).emit('Image upload', "image upload is started");
io.sockets.in("room-" + userId).emit('progress', "Image is Uploading started Please Wait A minute");
io.sockets.in("room-" + userId).emit('error', "clients connected!");
});
function getSocketIo() {
return io;
}
module.exports.getSocketIo = getSocketIo();
这是我导入getSocketIo的控制器文件的代码,但出现错误
const getSocketIo = require('../app.js');
const io = app.getSocketIo()
^
|------------ error - Uncaught TypeError: app.getSocketIo is not a function in socket.io
导出时正在执行函数,请更改为:
module.exports.getSocketIo = getSocketIo;
此外,我建议使用更干净的解决方案,并将应用程序文件保留为其唯一用途,请参阅,希望它有帮助。如果导出时正在执行该功能,请更改为:
module.exports.getSocketIo = getSocketIo;
此外,我建议使用更干净的解决方案,并将应用程序文件保留为其唯一用途,请参阅,希望它能有所帮助。添加以下代码,我已从app.js导出io对象,您可以在需要的地方轻松使用它
const server = require('http').createServer(app);
const io = require('socket.io')(server);
io.on('connection', async (socket) => {
console.log('socket connected', userId)
if (io.nsps['/'].adapter.rooms["room-" + userId] && io.nsps['/'].adapter.rooms["room-" + userId].length > 0) userId++;
socket.join("room-" + userId);
io.sockets.in("room-" + userId).emit('connectToRoom', "You are in room no. " + userId);
io.sockets.in("room-" + userId).emit('Image upload', "image upload is started");
io.sockets.in("room-" + userId).emit('progress', "Image is Uploading started Please Wait A minute");
io.sockets.in("room-" + userId).emit('error', "clients connected!");
});
const socketIoObject = io;
module.exports.ioObject = socketIoObject;
在您想要获得该函数的地方,请使用下面的代码
const socket = require('../app');//import object
socket.ioObject
添加下面的代码我已经从app.js导出了io对象,你可以在你想要的地方轻松使用它
const server = require('http').createServer(app);
const io = require('socket.io')(server);
io.on('connection', async (socket) => {
console.log('socket connected', userId)
if (io.nsps['/'].adapter.rooms["room-" + userId] && io.nsps['/'].adapter.rooms["room-" + userId].length > 0) userId++;
socket.join("room-" + userId);
io.sockets.in("room-" + userId).emit('connectToRoom', "You are in room no. " + userId);
io.sockets.in("room-" + userId).emit('Image upload', "image upload is started");
io.sockets.in("room-" + userId).emit('progress', "Image is Uploading started Please Wait A minute");
io.sockets.in("room-" + userId).emit('error', "clients connected!");
});
const socketIoObject = io;
module.exports.ioObject = socketIoObject;
在您想要获得该函数的地方,请使用下面的代码
const socket = require('../app');//import object
socket.ioObject