Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在多个文件上拆分Node.js代码的好方法_Node.js - Fatal编程技术网

在多个文件上拆分Node.js代码的好方法

在多个文件上拆分Node.js代码的好方法,node.js,Node.js,我目前的代码类似于: io.sockets.on('connection', function (socket) { socket.on('ping', function (data) { socket.emit("ping", data); }); }); 我想分开: socket.on('ping', function (data) { socket.emit("ping", data); }); 进入一个单独的文件,但它仍然能够使用socket变量,我在“conn

我目前的代码类似于:

io.sockets.on('connection', function (socket) {
  socket.on('ping', function (data) {
    socket.emit("ping", data);
  });
});
我想分开:

socket.on('ping', function (data) {
   socket.emit("ping", data);
});
进入一个单独的文件,但它仍然能够使用socket变量,我在“connection”函数中使用了很多socket.on函数,我想知道是否有办法将这些子函数拆分为多个文件。比如:

io.sockets.on('connection', function (socket) {
  require('otherFunctions.js');
});

我认为这应该行得通:

io.sockets.on('connection', require('otherFunctions.js').socketConnection);
然后在
otherFunctions.js
中,只需导出
socketConnection

exports.socketConnection = function(socket) {
    ...
}

为什么需要后面的.socketConnection?如何包含多个文件?
.socketConnection
将是您在
otherFunction.js
中导出的函数名。您正在使用它来代替匿名函数,因此它将包含一个
套接字
对象。很好,我仍然需要尝试(明天),但我如何需要多个文件?目前的说法是没有定义池,如何将池作为变量添加到require中?我不确定“池”是什么。您可以像往常一样在
otherFunctions.js
顶部“需要”任何您需要的东西。您可以需要任意多个文件,也可以在一个文件中定义所有函数。如果您只需要文件中的一个函数,您甚至可以执行
module.exports=function(socket)
,然后删除
.socketConnection
位。