什么时候应该在 NodeJS 中创建一个单独的模块文件?

When should I create a separate module file in NodeJS?

我在传统的面向对象编程(主要是 C#)方面有很多经验,现在正在学习 NodeJS。我了解 CommonJS 模块在 NodeJS 中的工作方式,但我很困惑如何将我对如何使用 C# classes 和程序集构建软件的现有理解映射到 NodeJS 模块。

在传统的 OOP 中,一切都是 class,每个 class 通常是一个文件。许多 classes 然后被编译成一个程序集。

一个 NodeJS 模块总是只有一个文件,就像 class(大部分时间)。但是,在 运行 应用程序中只创建了一个模块实例,这与 class 非常不同。所以从某种意义上说,模块更像是 C# 命名空间。一个模块还可以包含多个 classes/function 构造函数,就像 C# 命名空间可以包含多个 classes.

但是,一个模块也始终是一个文件。如果我要将现有的 C# 应用程序移植到 NodeJS,将单个命名空间下许多 class 文件中的所有逻辑移动到一个庞大的模块文件中会感觉不对。但也许我只是习惯了很多小 class 文件?

对于在 NodeJS 中编程时何时应将代码拆分为单独的模块文件,是否有最佳实践或约定?

在 javascript 中,您应该主要从功能的角度考虑。对于每个功能,您都编写一个函数。如果一个函数太大,将它分解成更小的函数并创建一个调用所有更小函数的新函数。通常我们保留围绕相同功能编写的函数,例如用户管理,在单个文件中。

通常的做法是将所有类似的文件保存在一个文件夹中,然后添加 index.js 文件,该文件将该文件夹中的所有文件导入 index.js 和 index.js 使用所有导入的文件并创建可由其他模块直接使用的最终接口,而不是导入每个文件。很难用文字解释,但是你可以看到这些例子,只要看看那里的导出语句,看看文件结构:

https://github.com/expressjs/express/tree/master/lib/router

https://github.com/axios/axios/tree/master/lib

希望这个helps.Happy学习...