亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Node.js中的模塊化方法

 更新時(shí)間:2022年01月12日 14:45:49   作者:s_kzn  
這篇文章主要為大家介紹了Node.js的模塊化,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

一、模塊化的基本概念

1、什么是模塊化

模塊化是指解決一個(gè)復(fù)雜問題時(shí),自頂向下逐層把系統(tǒng)劃分成若干模塊的過程。對(duì)于整個(gè)系統(tǒng)來說,模塊是可組合、分解和更換的單元。

編程領(lǐng)域中的模塊化

就是遵守固定的規(guī)則,把一個(gè)大文件拆成獨(dú)立并互相依賴的多個(gè)小模塊。 把代碼進(jìn)行模塊化拆分的好處:

  • 提高了代碼的復(fù)用性
  • 提高了代碼的可維護(hù)性
  • 可以實(shí)現(xiàn)按需加載

2、模塊化規(guī)范

模塊化規(guī)范就是對(duì)代碼進(jìn)行模塊化的拆分與組合時(shí),需要遵守的那些規(guī)則。

例如:

  • 使用什么樣的語法格式來引用模塊
  • 在模塊中使用什么樣的語法格式向外暴露成員

模塊化規(guī)范的好處

大家都遵守同樣的模塊化規(guī)范寫代碼,降低了溝通的成本,極大方便了各個(gè)模塊之間的相互調(diào)用,利人利己。

二、Node.js 中的模塊化

1、Node.js 中的模塊化分類

Node.js 中根據(jù)模塊來源的不同,將模塊分為了 3 大類,分別是:

內(nèi)置模塊(內(nèi)置模塊是由 Node.js 官方提供的,例如 fs、path、http 等)  

自定義模塊(用戶創(chuàng)建的每個(gè) .js 文件,都是自定義模塊)  

第三方模塊(由第三方開發(fā)出來的模塊,并非官方提供的內(nèi)置模塊,也不是用戶創(chuàng)建的自定義模塊,使用前需要先下載)

2、加載模塊

使用 require() 方法,可以加載需要的內(nèi)置模塊、用戶自定義模塊、第三方模塊進(jìn)行使用。

// 1、加載內(nèi)置fs模塊
const fs = require('fs')
//2、加載自定義模塊
const tre = require('./tre.js')
//3、加載第三方模塊
const moment=require('moment')

3、向外共享模塊作用域中的成員

module.exports 對(duì)象:

在每個(gè) .js 自定義模塊中都有一個(gè) module 對(duì)象,它里面存儲(chǔ)了和當(dāng)前模塊有關(guān)的信息。

在自定義模塊中,可以使用 module.exports 對(duì)象,將模塊內(nèi)的成員共享出去,供外界使用。

外界用 require() 方法導(dǎo)入自定義模塊時(shí),得到的就是 module.exports 所指向的對(duì)象。

4、Node.js 中的模塊化規(guī)范

(1)什么是CommonJS模塊規(guī)范

  • CommonJS 是一套代碼規(guī)范, 目的是為了構(gòu)建 JavaScript 在瀏覽器之外的生態(tài)系統(tǒng) (服務(wù)器端, 桌面端).
  • 通過該規(guī)范使JavaScript具備開發(fā)復(fù)雜應(yīng)用、跨平臺(tái)的能力

Node.js 遵循了 CommonJS 模塊化規(guī)范,CommonJS 規(guī)定了模塊的特性和各模塊之間如何相互依賴。

(2)CommonJS 模塊化規(guī)范

CommonJS模塊規(guī)范化的內(nèi)容
導(dǎo)出模塊:moudle.exports 導(dǎo)出模塊
導(dǎo)入模塊:require('模塊名稱')

CommonJS 規(guī)定:

1.每個(gè)模塊內(nèi)部,module 變量代表當(dāng)前模塊。

2.module 變量是一個(gè)對(duì)象,它的 exports 屬性(即 module.exports)是對(duì)外的接口。

3.加載某個(gè)模塊,其實(shí)是加載該模塊的 module.exports 屬性。require() 方法用于加載模塊。

(3)每個(gè)導(dǎo)出的模塊都有一個(gè)moudle對(duì)象,該對(duì)象包含的屬性有:

moudle.exports表示當(dāng)前模塊對(duì)外輸出的接口,其他模塊引用的是moudle.exports導(dǎo)出的變量
exports變量指向moudle.exports,為了操作的方便,它不能直接指向一個(gè)值

(4)使用require導(dǎo)入模塊:導(dǎo)入并執(zhí)行一個(gè)JavaScript文件,返回的是一個(gè)exports對(duì)象,若沒有找到相應(yīng)的對(duì)象就報(bào)錯(cuò)    

  • 模塊輸出是一個(gè)函數(shù),則該函數(shù)的輸出接口不能用exports變量來導(dǎo)出必須用戶moudle.exports導(dǎo)出
  • 加載規(guī)則:

A、用來加載js文件,默認(rèn)的文件擴(kuò)展名為.js

B、根據(jù)參數(shù)的不同格式,去不同路徑下查找相應(yīng)的js文件

'./(../)':表示加載路徑是相對(duì)路徑              

'/':表示加載路徑是絕對(duì)路徑              

既不是'./(../)'也不是'/':表示加載的模式是node的核心模塊,在node安裝路徑的node_modules中              

  • require的內(nèi)部處理的流程

require -->module.exports-->moudle._load 

三、npm 與 包

1、包的概念

什么是包?

Node.js 中的第三方模塊又叫做包。 就像電腦和計(jì)算機(jī)指的是相同的東西,第三方模塊和包指的是同一個(gè)概念,只不過叫法不同。

包的來源?

不同于 Node.js 中的內(nèi)置模塊與自定義模塊,包是由第三方個(gè)人或團(tuán)隊(duì)開發(fā)出來的,免費(fèi)供所有人使用。 注意:Node.js 中的包都是免費(fèi)且開源的,不需要付費(fèi)即可免費(fèi)下載使用。

為什么需要包?

由于 Node.js 的內(nèi)置模塊僅提供了一些底層的 API,導(dǎo)致在基于內(nèi)置模塊進(jìn)行項(xiàng)目開發(fā)的時(shí),效率很低。 包是基于內(nèi)置模塊封裝出來的,提供了更高級(jí)、更方便的 API,極大的提高了開發(fā)效率。 包和內(nèi)置模塊之間的關(guān)系,類似于 jQuery 和 瀏覽器內(nèi)置 API 之間的關(guān)系。

2、包的安裝與卸載

npm 包的安裝——

npm install 包的完整名稱

npm 包的卸載——

npm uninstall 包的完整名稱

安裝指定保本的包——

默認(rèn)情況下,使用 npm install 命令安裝包的時(shí)候,會(huì)自動(dòng)安裝最新版本的包。如果需要安裝指定版本的包,可以在包名之后,通過 @ 符號(hào)指定具體的版本,例如

npm install moment@2.12.1

3、包管理配置文件

npm 規(guī)定,在項(xiàng)目根目錄中,必須提供一個(gè)叫做 package.json 的包管理配置文件。用來記錄與項(xiàng)目有關(guān)的一些配置信息。例如:

  • 項(xiàng)目的名稱、版本號(hào)、描述等
  • 項(xiàng)目中都用到了哪些包
  • 哪些包只在開發(fā)期間會(huì)用到
  • 哪些包在開發(fā)和部署時(shí)都需要用到

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • node中IO以及定時(shí)器優(yōu)先級(jí)詳解

    node中IO以及定時(shí)器優(yōu)先級(jí)詳解

    這篇文章主要給大家介紹了關(guān)于node中IO以及定時(shí)器優(yōu)先級(jí)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用node具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 三步教你完成切換nodejs版本

    三步教你完成切換nodejs版本

    nvm是一個(gè)node的版本管理工具,可以簡(jiǎn)單操作node版本的切換、安裝、查看,下面這篇文章主要給大家介紹了關(guān)于如何通過三步完成切換nodejs版本的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • 淺談node.js中間件有哪些類型

    淺談node.js中間件有哪些類型

    這篇文章主要介紹了node.js中間件有哪些類型,對(duì)中間件感興趣的同學(xué),可以參考下
    2021-04-04
  • pm2工具在Node.js開發(fā)部署中的重要作用詳解

    pm2工具在Node.js開發(fā)部署中的重要作用詳解

    這篇文章主要為大家介紹了pm2工具在Node.js開發(fā)部署中的重要作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • nodejs模塊nodemailer基本使用-郵件發(fā)送示例(支持附件)

    nodejs模塊nodemailer基本使用-郵件發(fā)送示例(支持附件)

    本篇文章主要介紹了nodejs模塊nodemailer基本使用-郵件發(fā)送示例(支持附件),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • Node.js基于cors解決接口跨域的問題(推薦)

    Node.js基于cors解決接口跨域的問題(推薦)

    這篇文章主要介紹了Node.js基于cors解決接口跨域的問題,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • node.js中的console.info方法使用說明

    node.js中的console.info方法使用說明

    這篇文章主要介紹了node.js中的console.info方法使用說明,本文介紹了console.info的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • nodejs redis 發(fā)布訂閱機(jī)制封裝實(shí)現(xiàn)方法及實(shí)例代碼

    nodejs redis 發(fā)布訂閱機(jī)制封裝實(shí)現(xiàn)方法及實(shí)例代碼

    這篇文章主要介紹了nodejs redis 發(fā)布訂閱機(jī)制封裝的相關(guān)資料,這里提供了實(shí)現(xiàn)方法,及實(shí)例代碼,具有參考價(jià)值,需要的朋友可以參考下
    2016-12-12
  • Nest.js參數(shù)校驗(yàn)和自定義返回?cái)?shù)據(jù)格式詳解

    Nest.js參數(shù)校驗(yàn)和自定義返回?cái)?shù)據(jù)格式詳解

    這篇文章主要給大家介紹了關(guān)于Nest.js參數(shù)校驗(yàn)和自定義返回?cái)?shù)據(jù)格式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • node?NPM庫qs?iconv-lite字符串編碼轉(zhuǎn)換及解析URL查詢學(xué)習(xí)

    node?NPM庫qs?iconv-lite字符串編碼轉(zhuǎn)換及解析URL查詢學(xué)習(xí)

    這篇文章主要為大家介紹了node?NPM庫之qs解析URL查詢字符串及iconv-lite字符串編碼轉(zhuǎn)換學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07

最新評(píng)論