如何创建一个Node.js模块

201 阅读2分钟

NodeJs模块与vanilla JavaScript库相同,它们是由一些外部因素(其他一些javascript文件或应用程序)使用的代码块。NodeJs是一个javascript运行环境,就像vanilla javascript库一样,互联网上有数以百万计的NodeJs模块。模块,就像Js库一样,可以是一个单一的文件,也可以由一堆文件培育而成,共同完成一个特定的任务或提供某些功能。

在你的项目中包括一个模块

要使用一个特定的模块,你需要使用关键字**"require() "**和该模块的名称。如果你想使用的模块不是内置模块,那么你可以通过在终端使用以下命令从npm库中下载模块。

npm installs <name-of-module>

内置模块

NodeJS包括很多内置模块,一些内置模块的例子是:

  • 定时器
  • string_decoder
  • 子程序(child_process
  • 密码学
  • Https

创建你自己的NodeJs模块

你可以轻松地创建你的node模块,并使用同一项目或不同应用程序的其他文件。为了开始,让我们先在一个文件夹里面,用npm创建一个新的node项目。因此,在你的代码编辑器的终端键入以下几行。

$ mkdir create_node_module

这将创建一个新的文件夹,现在我们需要使用以下命令进入该文件夹。

$ cd create_node_module

现在你已经在你创建的文件夹内,你可以使用命令启动一个新的node项目。

$ npm init

你会在你的控制台看到以下结果:

只要按照终端屏幕的指引,提供一个包的名称,作者的名字,等等。

最后,它会问你是否同意package.json文件。

输入yes 或按回车键

创建一个新文件,命名为**"myfirstmodule.js"。在这个文件中,我们要存储关于超级汽车的信息,所以我们需要一个Car** 的数据结构,我们可以用下面几行代码来创建。

class Car {

constructor(name, model) {

this.name = name;

this.model = model;

}

}

接下来我们需要一个汽车列表,每个条目都映射到我们刚刚创建的数据结构上。

const allCars = [

new Car("McLaren", 2012),

new Car("Bugatti", 2020),

new Car("Ferrari", 2007),

new Car("Lambo", 2008),

new Car("Toyota", 1993),

new Car("Mustang", 2017),

];

接下来,我们想要一个函数,从我们的列表中随机挑选汽车。我们还需要使用关键字 "**exports "**导出这个函数,这样任何需要我们模块的文件都可以访问这个函数。使用以下几行代码。

exports.getRandomCar = () => {

return allCars[Math.floor(Math.random() * allCars.length)];

};

在同一文件夹中创建一个新文件,并将其命名为**"index js",**然后在该文件中输入以下一行。

const cars = require("./myfirstmodule");

这一行将在我们的index.js文件中包含我们的模块,我们现在可以使用**"cars "变量调用"getRandomCar()"**函数。

const randomCar = cars.getRandomCar();

剩下的最后一件事是使用随机选择的汽车的名称型号 。我们通过使用下面的代码命令行来做到这一点。

console.log(

`Today's hot pick is the ${randomCar.name} of the year ${randomCar.model}`

);

现在我们要做的就是通过在终端输入以下命令来运行索引文件。

node index.js

你将在控制台看到以下结果:

就这样,你创建了你的第一个node模块,并在另一个文件中使用exportsrequire 语句来使用它。如果你想走得更远,那么你可以在npm库中发布这个模块。

总结

Node模块相当于JavaScript库,这就是为什么创建新的node模块并不是一件难事。首先,你需要使用**"npm init "建立一个新的项目,然后你可以通过使用require** 和exports 关键字在另一个文件或应用程序中实现node模块。目前,我们只在一台机器内实现模块的使用,如果你愿意,你甚至也可以在npm库上发布你的模块。