如何将外部文件中的函数包含在另一个文件中?

问题描述 投票:0回答:1

我现在有这个代码:

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();
但这将意味着修改我所有函数的行为,我对此不太满意。还有其他选择吗?

node.js socket.io
1个回答
1
投票

鉴于您的“套接字”被定义为一个对象,那么您可以有两个文件:

  1. 外部.js
  2. main.js
// 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');
});
© www.soinside.com 2019 - 2024. All rights reserved.