NodeJs的CommonJs和NodeJs中自定义模块的介绍

不言
Freigeben: 2019-01-11 11:49:32
nach vorne
3604 Leute haben es durchsucht

本篇文章给大家带来的内容是关于NodeJs的CommonJs和NodeJs中自定义模块的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

CommonJs和NodeJs中自定义模块

1、什么是CommonJs

教程里巴拉巴拉说了一堆,我的理解就是 CommonJs 就是模块化的标准,NodeJs 就是CommonJs(模块化)的实现。用 CommonJS API 编写出的应用,不仅可以利用JavaScript 开发客户端应用,而且还可以编写以下应用:
a.服务器端JavaScript应用程序(nodejs)
b.命令行工具
c.桌面图形界面应用程序

2、NodeJs中的模块化

Node应用是模块组成的,采用CommonJs模块规范。

在Node中,模块分为两类:

一类是 Node 提供的模块,称为核心模块;另一类是用户编写的模块,称为 文件模块。
核心模块部分在 Node 源代码的编译过程中,编译进了二进制执行文件。在 Node 进程启动时,部分核心模块就被直接加载进内存中,所以这部分核心模块引入时,文件定位和编译执行这两个步骤可以省略掉,并且在路径分析中优先判断,所以它的加载速度是最快的。如:HTTP模块、URL模块、Fs模块都是nodejs 内置的核心模块。可以直接引入使用。
文件模块则是在运行时动态加载,需要完整的路径分析、文件定位、编译执行过程、速度相比核心模块稍微慢一些,但是用的非常多。 这些模块需要我们自己定义。 接下来我下们看一下nodejs中的自定义模块。

CommonJS (Nodejs )中自定义模块的规定

我们可以把公共的功能 抽离成为一个单独的js文件 作为一个模块,默认情况下面这个模块里面的方法或者属性,外面是没法访问的。如果要让外部可以访问模块里面的方法或者属性,就必须在模块里面通过 exports 或module.exports 暴露属性或者方法。
在需要使用这些模块的文件中,通过 require 的方式引入这个模块。这个时候就可以使用模块里面暴露的属性和方法。
这里我做了一张图方便理解:

4283004536-5c371423a3c4f_articlex.png

  • 定义使用模块

新建二个js

4079014725-5c370f57a7c7d_articlex.png

3960388712-5c370fdb459e0_articlex.png

3.npm init生成package.json

npm init -yes
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonNodeJs的CommonJs和NodeJs中自定义模块的介绍. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!