如何在 Deno 中创建自定义模块

阅读时长 5 分钟读完

Deno 是一个基于 V8 引擎构建的安全 TypeScript 运行时环境,它提供了一些内置的模块,但在开发过程中,我们可能需要自己编写一些自定义模块以满足业务需求。本文将详细介绍在 Deno 环境中创建自定义模块的过程,帮助读者学习和掌握如何编写高质量、可维护的 Deno 模块。

创建一个简单的 Deno 模块

要创建一个自定义的 Deno 模块,我们需要按照以下步骤来实现:

  1. 创建一个新文件夹,例如 "my-module";
  2. 在该文件夹中创建一个 TypeScript 文件,例如 "index.ts";
  3. 在 TypeScript 文件中定义一个模块函数;
  4. 在模块函数中实现模块逻辑;
  5. 在模块函数之后,使用 export 关键字将模块函数导出。

下面是一个简单的示例代码,它实现了一个名为 getMessage 的函数,在调用时返回一个字符串:

请注意,我们使用了 export default 语法来导出模块函数。这是因为在 Deno 中,每个模块都是一个单独的文件,我们只需要导出模块的默认函数即可在其他模块中引用该模块。如果您希望导出多个函数或者常量,您可以使用常规的 ES6 导出方式,如下所示:

在其他模块中使用自定义模块

当我们编写并导出了一个自定义模块之后,我们可以在其他模块中使用它。为了在另一个模块中使用自定义模块,我们需要使用 import 关键字来导入它。下面是一个简单的示例,展示了如何导入并使用我们前面定义的 getMessage 函数:

请注意,我们使用了相对路径来导入 getMessage 函数。因为在 Deno 中,没有 "node_modules" 目录,我们可以使用相对路径来访问本地模块。

另外,您还可以使用命名导入来导入多个函数/常量:

编写可测试的 Deno 模块

编写可测试的代码是一项非常重要的技能。在开发自定义模块时,我们需要编写可测试的代码,以便在测试时方便进行单元测试。以下是一些编写可测试代码的技巧:

  1. 将依赖项注入到模块函数中;
  2. 使用接口来定义依赖项,以方便进行模拟/mock;
  3. 将模块逻辑拆分为多个小函数,以方便进行单元测试;
  4. 使用 Jest 这样的测试框架来执行测试代码。

以下是一个示例代码,展示了如何编写可测试的 Deno 模块:

-- -------------------- ---- -------
--------- ------ -
  ---- -------
  ----- -------
-

-------- ----------------------- -------- ------ -
  ----- - ---- ---- - - -------
  ------ ---------- -- ------ -- ----------------
-

------ ------- -------- ------------------- -------- ---- -
  ----- ------ - ------------------------
  --------------------
-

在这个例子中,我们将 connectToServer 函数的实现拆分到了单独的函数中。这个函数可以方便地进行单元测试。另外,我们还使用了一个接口 Config,它定义了模块的依赖项,以方便进行模拟/mock。

使用 Jest 或其他测试框架进行测试时,我们可以简单地编写以下测试用例:

-- -------------------- ---- -------
------ ----------- ---- -----------------------

----------------------- -- -- -
  ------------ ------- -- ------ ----------- -- -- -
    ----- ------ - - ---- ------------ ----- ---- --
    ----- --- - ------------------- -------
    
    --------------------
    
    -------------------------------
    ------------------------------------------- -- ------ -- -----------------
  ---
---

在这个测试用例中,我们使用 Jest 框架来模拟 console.log 函数,并检查它是否被调用。我们还使用 toHaveBeenCalledWith 函数检查模块函数是否在正确的参数下输出正确的结果。

总结

在本文中,我们简要介绍了如何在 Deno 环境中创建自定义模块以及如何在其他模块中使用它们。我们还介绍了如何编写可测试的代码,并提供了一个完整的示例代码。希望这篇文章可以帮助您深入学习如何编写高质量的 Deno 模块,实现更好的代码复用和可维护性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64536e70968c7c53b07d3124

纠错
反馈