欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

node.js中的模塊化標(biāo)準(zhǔn)CommonJS與自定義模塊

 更新時(shí)間:2022年06月24日 10:47:53   作者:小旭2021  
這篇文章介紹了node.js中的模塊化標(biāo)準(zhǔn)CommonJS與自定義模塊,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、 什么是 CommonJs?

JavaScript 是一個(gè)強(qiáng)大面向?qū)ο笳Z言,它有很多快速高效的解釋器。 然而, JavaScript標(biāo)準(zhǔn)定義的 API 是為了構(gòu)建基于瀏覽器的應(yīng)用程序。并沒有制定一個(gè)用于更廣泛的應(yīng)用程序的標(biāo)準(zhǔn)庫。 CommonJS 規(guī)范的提出,主要是為了彌補(bǔ)當(dāng)前 JavaScript 沒有標(biāo)準(zhǔn)的缺陷。 它的終極目標(biāo)就是: 提供一個(gè)類似 Python, Ruby 和 Java 語言的標(biāo)準(zhǔn)庫,而不只是停留在小腳本程序的階段。用 CommonJS API 編寫出的應(yīng)用, 不僅可以利用 JavaScript 開發(fā)客戶端應(yīng)用, 而且還可以編寫以下應(yīng)用。

  • 服務(wù)器端 JavaScript 應(yīng)用程序。( nodejs)
  • 命令行工具。
  • 桌面圖形界面應(yīng)用程序。

CommonJS 就是模塊化的標(biāo)準(zhǔn), nodejs 就是 CommonJS( 模塊化) 的實(shí)現(xiàn)。

二、 Nodejs 中的模塊化

Node 應(yīng)用由模塊組成,采用 CommonJS 模塊規(guī)范。

2.1 在 Node 中,模塊分為兩類:

一類是 Node 提供的模塊,稱為核心模塊;另一類是用戶編寫的模塊,稱為文件模塊。

  • 核心模塊部分在 Node 源代碼的編譯過程中,編譯進(jìn)了二進(jìn)制執(zhí)行文件。在 Node 進(jìn)程啟動(dòng)時(shí),部分核心模塊就被直接加載進(jìn)內(nèi)存中,所以這部分核心模塊引入時(shí),文件定位和編譯執(zhí)行這兩個(gè)步驟可以省略掉,并且在路徑分析中優(yōu)先判斷,所以它的加載速度是最快的。如: HTTP 模塊 、 URL 模塊、 Fs 模塊都是 nodejs 內(nèi)置的核心模塊,可以直接引入使用。
  • 文件模塊則是在運(yùn)行時(shí)動(dòng)態(tài)加載,需要完整的路徑分析、文件定位、編譯執(zhí)行過程、速度相比核心模塊稍微慢一些,但是用的非常多。 這些模塊需要我們自己定義。 接下來我們看一下 nodejs 中的自定義模塊。

2.2 CommonJS( Nodejs) 中自定義模塊的規(guī)定:

  • 1.我們可以把公共的功能抽離成為一個(gè)單獨(dú)的 js 文件作為一個(gè)模塊, 默認(rèn)情況下面這個(gè)模塊里面的方法或者屬性, 外面是沒法訪問的。如果要讓外部可以訪問模塊里面的方法或者屬性, 就必須在模塊里面通過 exports 或者 module.exports 暴露屬性或者方法。
  • 2. 在需要使用這些模塊的文件中, 通過 require 的方式引入這個(gè)模塊。這個(gè)時(shí)候就可以使用模塊里面暴露的屬性和方法。

2.3 定義使用模塊:

// 定義一個(gè) tools.js 的模塊
//模塊定義
var tools = {
sayHello: function() {
return 'hello NodeJS';
},
add: function(x, y) {
return x + y;
}
};
// 模塊接口的暴露
// module.exports = tools;
exports.sayHello = tools.sayHello;
exports.add = tools.add;
1
2
3
4
var http = require('http');
// 引入自定義的 tools.js 模塊
var tools= require('./tools');
tools.sayHello(); //使用模塊

三、 npm init 生成 package.json

npm init --yes

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論