将 socket.io 命名空间分离到单独的文件中

Loo*_*urr 5 namespaces node.js express socket.io

我编写了两个相对较大的 socket.io 应用程序,一个用于玩游戏,另一个用于聊天,我将它们分成两个命名空间。

我现在想将这些从我的主文件中app.js移到某个命名空间目录中,并且只需要在我的 express 应用程序中使用它们,从而保留所有功能。

我将如何解决这个问题,或者有什么方法可以以其他方式获得我想要做的事情的效果?

mok*_*oka 1

为了使用单独的文件,您需要使用 Node.js 中的模块并使用 require 来加载它们。

模块具有特殊的结构和语法,以便能够调用模块函数并与之交互。

在这里阅读有关模块的信息:http ://nodejs.org/docs/latest/api/modules.html

如果您需要与模块内部的函数、对象和数据进行交互,那么重新构建应用程序的架构可能需要大量工作。

这是你从开发的最初时刻、应用程序的架构和技术设计过程中就必须注意的事情。

要使用相同的套接字,您必须在需要子模块的父模块中初始化它,并将套接字应用程序句柄传递给这些子节点,以便它们能够使用它。

最糟糕和最直接的选择是加载 js 文件内容并仅 eval() 它,这绝对不是商业世界中的选择。但请记住 - 绝对不推荐这样做,并且在商业世界中您永远不应该使用它。