我现在有这个代码:
io.on('connection', (socket) => {
function login() {
socket.name = 'myname';
}
//many more functions like the previous one here
});
我想将所有内部函数放在外部文件中,这样我就有更清晰的代码。所以我这样做了:
外部文件:
login = function() {
socket.name = 'myname';
}
主文件:
io.on('connection', (socket) => {
require("../chat/functions");
login();
//many more functions like the previous one here
});
但现在我收到了
socket is not defined
错误。我知道如果我包含这样的参数,我可以解决它:login();
但这将意味着修改我所有函数的行为,我对此不太满意。还有其他选择吗?
鉴于您的“套接字”被定义为一个对象,那么您可以有两个文件:
// external.js
module.export = {
login: (name) => {
return name;
},
logout: () => {
console.log('logout message')
}
};
// main.js
const { login } = require('./external');
io.on('connection', (socket) => {
socket.name = login('myname');
});