📜  Node.js 中的模块是什么?

📅  最后修改于: 2022-05-13 01:56:35.440000             🧑  作者: Mango

Node.js 中的模块是什么?

在 Node.js 应用程序中,模块可以被视为提供可以与外部应用程序通信的简单或复杂功能的代码块。模块可以组织在单个文件或多个文件/文件夹的集合中。几乎所有程序员都喜欢模块,因为它们在整个应用程序中的可重用性以及将代码的复杂性降低到更小的部分的能力。

Nodejs 在其模块生态系统中使用CommonJS Module 标准实现。

模块类型:在 Nodejs 中,有 3 种类型的模块,即

  • 核心模块
  • 本地模块
  • 第三方模块

核心模块: Node.js 带有几十个内置模块。这些内置模块有时被称为核心模块。模块系统是围绕 require函数构建的。此函数用于加载模块并访问其内容。 require是提供给所有 Node.js 脚本的全局变量,因此您可以在任何您喜欢的地方使用它。 require()函数将根据您的模块返回一个 JavaScript 类型。

导入模块的语法:

const module = require("Name_of_Module_to_be_imported");

如何使用核心模块:您可以直接在应用程序中使用 Nodejs 核心模块,无需任何安装。 让我们看一个文件系统 (fs) 模块的示例来处理应用程序中的文件。

最初,项目目录将如下所示:

最初,项目目录

示例:在 index.js 文件中编写以下代码 

Javascript
// Working code of fs module
const fs = require('fs'); // Import fs module
fs.writeFileSync('notes.txt', 'I love to code');


Javascript
const tests = function() {
    console.log("Yehh! Local file is running successfully...");
}
module.exports = tests;


Javascript
const utility = require('./utils.js');
utility();


Javascript
const validator = require("validator");
// Print: true
console.log("URL is " + validator.isURL("https://google.com"));
// Print: false
console.log("Email is " + validator.isEmail("johndoeeg.com"));


上面的脚本使用 require 加载到 fs 模块中。这是一个内置的 Node.js 模块,它提供了可用于操作文件系统的函数。该脚本使用writeFileSync将消息写入 notes.txt。

要运行脚本,请在终端上使用以下命令

$ node index.js

运行脚本后,您会注意到目录中有一个新的 notes.txt 文件。打开它,你会看到,“我喜欢编码”。

输出:现在我们的目录中有一个新文件notes.txt 。上面写着“我喜欢编码”。

输出

以下是一些 Nodejs 核心模块的列表:

Core Modules NameDescription 
fsTo handle the file system.
httpTo make Node.js act as an HTTP server
httpsTo make Node.js act as an HTTPS server.
osIt provides information about the operation system.
pathTo handle file paths.
clusterTo split a single Node process into multiple processes.
dnsTo do DNS lookups and name resolution functions.
tlsTo implement TLS and SSL protocols.
querystringTo handle URL query strings.
urlTo parse URL strings.
eventsTo handle events
timersTo execute a function after a given number of milliseconds.

本地模块:将所有代码放在一个文件中并不是一个好主意。当您添加更多代码时,您需要保持井井有条,并将您的 Node.js 应用程序分解为多个协同工作的脚本。为此,我们可以在我们的应用程序中创建本地模块。

从文件导出:首先我们需要创建一个名为utils.js的文件。现在我们可以使用module.exports 导出写在这个文件上的 javascript 代码。下面定义了一个函数并将其分配给 module.exports。

项目设置:

  • Utils.js:在 utils.js 文件中写入以下代码

Javascript

const tests = function() {
    console.log("Yehh! Local file is running successfully...");
}
module.exports = tests;

导入您自己的文件:现在我们需要将本地文件导入index.js 。 require函数也用于导入目录中的文件。您需要做的就是向 require 提供要加载的脚本的相对路径。此路径应以 ./ 开头,然后链接到需要加载的文件。

文件名:- 在 index.js 文件中

Javascript

const utility = require('./utils.js');
utility();

上面的代码使用 require 来加载 src 目录中一个名为 utils.js 的文件。它将模块内容存储在一个变量中,然后在脚本中使用这些内容。

如果你运行上面的 index.js 脚本。您将看到从 utils.js 文件中定义的测试函数记录的消息。

输出:

Yehh! Local file is running successfully...

第三方模块:可以从在线提供的 NPM(节点包管理器)安装第三方模块。

首先,我们需要使用npm init命令初始化 npm,然后才能使用 npm。它会在根目录中创建一个 package.json 文件,并存储我们作为依赖项安装的第三方模块的所有信息。

安装 NPM 模块:

npm install "module_name"

上面的命令将执行以下操作:

首先,它会创建 node_modules 目录,npm 使用该目录来存储您已安装的 npm 模块的所有代码。其次,npm 通过在 package.json 文件的 dependencies 属性中列出一个模块作为依赖项,最后,npm 创建一个 package-lock.json 文件。这用于存储有关您已安装的模块的信息,这有助于保持快速和安全。

第三方模块示例:

  • npm 安装快递
  • npm 安装 lodash
  • npm 安装摩卡

让我们通过一个例子来看看如何使用第三方模块:

  • 验证器是用于字符串验证和清理的流行模块。

要安装运行以下命令:

$npm install validator

可以使用 require 将 npm 模块导入到您的脚本中。要加载 npm 模块,请将 npm 模块名称传递给 require:

index.js:在 index.js 文件中写入以下代码

Javascript

const validator = require("validator");
// Print: true
console.log("URL is " + validator.isURL("https://google.com"));
// Print: false
console.log("Email is " + validator.isEmail("johndoeeg.com"));

输出: