【问题标题】:When should I create a separate module file in NodeJS?我什么时候应该在 NodeJS 中创建一个单独的模块文件?
【发布时间】:2021-04-23 03:30:22
【问题描述】:

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

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

NodeJS 模块始终只有一个文件,就像一个类(大多数情况下)。但是,在运行的应用程序中只创建了一个模块实例,这与类非常不同。所以从某种意义上说,模块感觉更像是 C# 命名空间。一个模块也可以包含多个类/函数构造函数,就像 C# 命名空间可以包含多个类。

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

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

【问题讨论】:

    标签: c# node.js oop node-modules commonjs


    【解决方案1】:

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

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

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

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

    希望这会有所帮助。快乐学习...?

    【讨论】:

      猜你喜欢
      • 2012-11-13
      • 1970-01-01
      • 2020-09-06
      • 2013-06-18
      • 1970-01-01
      • 1970-01-01
      • 2019-04-17
      • 2020-01-09
      • 1970-01-01
      相关资源
      最近更新 更多