node.js 16 模塊系統

本文參考原文-http://bjbsair.com/2020-03-22...html

const http = require('http')

在node.js中,一個應用程序由若干模塊組成,而這些模塊,咱們能夠理解爲是一個JavaScript文件,以.js結尾的文件。node

原生模塊

對於上述的'http'是原生模塊,在node.js安裝後是系統自帶的。使用模塊時只須要經過 require 進行引入便可。segmentfault

在這段代碼中,使用require函數來引用http模塊,該函數返回http模塊,將該對象賦值給http以後便可以經過http來訪問http模塊中的屬性及方法。服務器

const http = require('http')

http.createServer(function (request, response) {app

//回調函數內容函數

}oop

塊又稱之爲核心模塊,經常使用的核心模塊以下:ui

  • assert 斷言處理
  • buffer 緩衝數據的存儲與轉換
  • child_process 子進程的建立與管理
  • cluster 多進程
  • console 控制檯
  • debugger 內置調試器
  • dns DNS相關
  • events 事件處理
  • http HTTP服務器端及客戶端
  • https HTTPS服務器端及客戶端
  • net TCP服務端及客戶端
  • os 操做系統信息
  • path 文件路釋
  • querystrmg 處理HTTP請求中使用的查洵字符串
  • repl 實現REPL(Read-Eval-Print-Loop)
  • zlib 經過zlib類庫來實現數據的壓縮及解壓處理

自定義模塊的導入

在實際工做中,僅僅使用原生模塊是不夠的,咱們須要使用本身團隊定義的其餘模塊,也就是.js文件。那麼如何進行使用?this

跟使用原生模塊同樣,也經過require函數,不一樣的是,須要寫名模塊文件的路徑。url

const circle = require('./circle.js');

示例中的circle.js文件就是一個自定義模塊文件。實際工做中,每每會在根目錄下創建node_modules目錄,把不一樣模塊按照業務規則創建對應目錄。

exports導出模塊

一個模塊中的變量和方法只能用於當前模塊。若是但願被其餘模塊使用,就須要經過exports來導出該模塊的對象,方法,屬性

接下來咱們看一下circle.js的內容

const PI = 3.14;  
exports.area = (r) => PI * r ** 2;  
exports.circumference = (r) => 2 * PI * r;  
exports.PI = PI;

上例中咱們能夠看到這是一個計算圓面積和周長的模塊。在模塊中使用了exports導出了

  • 兩個方法,area(r) 和 circumference(r)
  • 一個屬性,PI

那麼回到咱們原先的代碼中,因爲咱們引入了circle.js,只須要寫出以下代碼就能夠進行調用circle.area(r)這個方法。

const circle = require('./circle.js');  
console.log(`半徑爲4的園面積:  ${circle.area(4)}`);  
console.log(`PI =  ${circle.PI}`);

將源文件保存爲appCircle.js,運行appCircle.js後獲得下列結果

D:ProjectsnodejsNodeDemo>node appCircle.js

半徑爲4的園面積: 50.24

PI = 3.14

將模塊定義爲類並導出

上面的例子咱們看到了導出模塊的屬性和方法。那麼從面向對象的角度,咱們是否能夠將模塊定義爲類並導出。下面就是一個示例保存在square.js中。

module.exports = class Square {  
  constructor(width) {  
    this.width = width;  
  }  
  
  area() {  
    return this.width ** 2;  
  }  
};

示例中,能夠直接使用"module.exports" 來導出類。導出的類名爲Square,是用來計算平方數的。該類的構建器經過width構建,使用方法爲area(),返回平方數。

調用的時候咱們只須要引入類,而後直接調用area()方法便可。

const Square = require('./square.js'); //引入類  
const mySquare = new Square(2); //構建Square類  
console.log(`平方數: ${mySquare.area()}`); //調用類方法

輸出結果:

D:ProjectsnodejsNodeDemo>node appSquare.js

平方數: 4

node.js模塊的介紹就到這裏。本文參考原文-http://bjbsair.com/2020-03-22...

const http = require('http')

在node.js中,一個應用程序由若干模塊組成,而這些模塊,咱們能夠理解爲是一個JavaScript文件,以.js結尾的文件。

原生模塊

對於上述的'http'是原生模塊,在node.js安裝後是系統自帶的。使用模塊時只須要經過 require 進行引入便可。

在這段代碼中,使用require函數來引用http模塊,該函數返回http模塊,將該對象賦值給http以後便可以經過http來訪問http模塊中的屬性及方法。

const http = require('http')

http.createServer(function (request, response) {

//回調函數內容

}

塊又稱之爲核心模塊,經常使用的核心模塊以下:

  • assert 斷言處理
  • buffer 緩衝數據的存儲與轉換
  • child_process 子進程的建立與管理
  • cluster 多進程
  • console 控制檯
  • debugger 內置調試器
  • dns DNS相關
  • events 事件處理
  • http HTTP服務器端及客戶端
  • https HTTPS服務器端及客戶端
  • net TCP服務端及客戶端
  • os 操做系統信息
  • path 文件路釋
  • querystrmg 處理HTTP請求中使用的查洵字符串
  • repl 實現REPL(Read-Eval-Print-Loop)
  • zlib 經過zlib類庫來實現數據的壓縮及解壓處理

自定義模塊的導入

在實際工做中,僅僅使用原生模塊是不夠的,咱們須要使用本身團隊定義的其餘模塊,也就是.js文件。那麼如何進行使用?

跟使用原生模塊同樣,也經過require函數,不一樣的是,須要寫名模塊文件的路徑。

const circle = require('./circle.js');

示例中的circle.js文件就是一個自定義模塊文件。實際工做中,每每會在根目錄下創建node_modules目錄,把不一樣模塊按照業務規則創建對應目錄。

exports導出模塊

一個模塊中的變量和方法只能用於當前模塊。若是但願被其餘模塊使用,就須要經過exports來導出該模塊的對象,方法,屬性

接下來咱們看一下circle.js的內容

const PI = 3.14;  
exports.area = (r) => PI * r ** 2;  
exports.circumference = (r) => 2 * PI * r;  
exports.PI = PI;

上例中咱們能夠看到這是一個計算圓面積和周長的模塊。在模塊中使用了exports導出了

  • 兩個方法,area(r) 和 circumference(r)
  • 一個屬性,PI

那麼回到咱們原先的代碼中,因爲咱們引入了circle.js,只須要寫出以下代碼就能夠進行調用circle.area(r)這個方法。

const circle = require('./circle.js');  
console.log(`半徑爲4的園面積:  ${circle.area(4)}`);  
console.log(`PI =  ${circle.PI}`);

將源文件保存爲appCircle.js,運行appCircle.js後獲得下列結果

D:ProjectsnodejsNodeDemo>node appCircle.js

半徑爲4的園面積: 50.24

PI = 3.14

將模塊定義爲類並導出

上面的例子咱們看到了導出模塊的屬性和方法。那麼從面向對象的角度,咱們是否能夠將模塊定義爲類並導出。下面就是一個示例保存在square.js中。

module.exports = class Square {  
  constructor(width) {  
    this.width = width;  
  }  
  
  area() {  
    return this.width ** 2;  
  }  
};

示例中,能夠直接使用"module.exports" 來導出類。導出的類名爲Square,是用來計算平方數的。該類的構建器經過width構建,使用方法爲area(),返回平方數。

調用的時候咱們只須要引入類,而後直接調用area()方法便可。

const Square = require('./square.js'); //引入類  
const mySquare = new Square(2); //構建Square類  
console.log(`平方數: ${mySquare.area()}`); //調用類方法

輸出結果:

D:ProjectsnodejsNodeDemo>node appSquare.js

平方數: 4

node.js模塊的介紹就到這裏。本文參考原文-http://bjbsair.com/2020-03-22...

const http = require('http')

在node.js中,一個應用程序由若干模塊組成,而這些模塊,咱們能夠理解爲是一個JavaScript文件,以.js結尾的文件。

原生模塊

對於上述的'http'是原生模塊,在node.js安裝後是系統自帶的。使用模塊時只須要經過 require 進行引入便可。

在這段代碼中,使用require函數來引用http模塊,該函數返回http模塊,將該對象賦值給http以後便可以經過http來訪問http模塊中的屬性及方法。

const http = require('http')

http.createServer(function (request, response) {

//回調函數內容

}

塊又稱之爲核心模塊,經常使用的核心模塊以下:

  • assert 斷言處理
  • buffer 緩衝數據的存儲與轉換
  • child_process 子進程的建立與管理
  • cluster 多進程
  • console 控制檯
  • debugger 內置調試器
  • dns DNS相關
  • events 事件處理
  • http HTTP服務器端及客戶端
  • https HTTPS服務器端及客戶端
  • net TCP服務端及客戶端
  • os 操做系統信息
  • path 文件路釋
  • querystrmg 處理HTTP請求中使用的查洵字符串
  • repl 實現REPL(Read-Eval-Print-Loop)
  • zlib 經過zlib類庫來實現數據的壓縮及解壓處理

自定義模塊的導入

在實際工做中,僅僅使用原生模塊是不夠的,咱們須要使用本身團隊定義的其餘模塊,也就是.js文件。那麼如何進行使用?

跟使用原生模塊同樣,也經過require函數,不一樣的是,須要寫名模塊文件的路徑。

const circle = require('./circle.js');

示例中的circle.js文件就是一個自定義模塊文件。實際工做中,每每會在根目錄下創建node_modules目錄,把不一樣模塊按照業務規則創建對應目錄。

exports導出模塊

一個模塊中的變量和方法只能用於當前模塊。若是但願被其餘模塊使用,就須要經過exports來導出該模塊的對象,方法,屬性

接下來咱們看一下circle.js的內容

const PI = 3.14;  
exports.area = (r) => PI * r ** 2;  
exports.circumference = (r) => 2 * PI * r;  
exports.PI = PI;

上例中咱們能夠看到這是一個計算圓面積和周長的模塊。在模塊中使用了exports導出了

  • 兩個方法,area(r) 和 circumference(r)
  • 一個屬性,PI

那麼回到咱們原先的代碼中,因爲咱們引入了circle.js,只須要寫出以下代碼就能夠進行調用circle.area(r)這個方法。

const circle = require('./circle.js');  
console.log(`半徑爲4的園面積:  ${circle.area(4)}`);  
console.log(`PI =  ${circle.PI}`);

將源文件保存爲appCircle.js,運行appCircle.js後獲得下列結果

D:ProjectsnodejsNodeDemo>node appCircle.js

半徑爲4的園面積: 50.24

PI = 3.14

將模塊定義爲類並導出

上面的例子咱們看到了導出模塊的屬性和方法。那麼從面向對象的角度,咱們是否能夠將模塊定義爲類並導出。下面就是一個示例保存在square.js中。

module.exports = class Square {  
  constructor(width) {  
    this.width = width;  
  }  
  
  area() {  
    return this.width ** 2;  
  }  
};

示例中,能夠直接使用"module.exports" 來導出類。導出的類名爲Square,是用來計算平方數的。該類的構建器經過width構建,使用方法爲area(),返回平方數。

調用的時候咱們只須要引入類,而後直接調用area()方法便可。

const Square = require('./square.js'); //引入類  
const mySquare = new Square(2); //構建Square類  
console.log(`平方數: ${mySquare.area()}`); //調用類方法

輸出結果:

D:ProjectsnodejsNodeDemo>node appSquare.js

平方數: 4

node.js模塊的介紹就到這裏。

相關文章
相關標籤/搜索