本文參考原文-http://bjbsair.com/2020-03-22/tech-info/2817.html
const http = require('http')
在node.js中,一個(gè)應(yīng)用程序由若干模塊組成,而這些模塊,我們可以理解為是一個(gè)JavaScript文件,以.js結(jié)尾的文件。
原生模塊
對于上述的'http'是原生模塊,在node.js安裝后是系統(tǒng)自帶的。使用模塊時(shí)只需要通過 require 進(jìn)行引入即可。
在這段代碼中,使用require函數(shù)來引用http模塊,該函數(shù)返回http模塊,將該對象賦值給http之后即可以通過http來訪問http模塊中的屬性及方法。
const http = require('http')
http.createServer(function (request, response) {
//回調(diào)函數(shù)內(nèi)容
}
塊又稱之為核心模塊,常用的核心模塊如下:
- assert 斷言處理
- buffer 緩沖數(shù)據(jù)的存儲與轉(zhuǎn)換
- child_process 子進(jìn)程的創(chuàng)建與管理
- cluster 多進(jìn)程
- console 控制臺
- debugger 內(nèi)置調(diào)試器
- dns DNS相關(guān)
- events 事件處理
- http HTTP服務(wù)器端及客戶端
- https HTTPS服務(wù)器端及客戶端
- net TCP服務(wù)端及客戶端
- os 操作系統(tǒng)信息
- path 文件路釋
- querystrmg 處理HTTP請求中使用的查洵字符串
- repl 實(shí)現(xiàn)REPL(Read-Eval-Print-Loop)
- zlib 通過zlib類庫來實(shí)現(xiàn)數(shù)據(jù)的壓縮及解壓處理
自定義模塊的導(dǎo)入
在實(shí)際工作中,僅僅使用原生模塊是不夠的,我們需要使用自己團(tuán)隊(duì)定義的其他模塊,也就是.js文件。那么如何進(jìn)行使用?
跟使用原生模塊一樣,也通過require函數(shù),不同的是,需要寫名模塊文件的路徑。
const circle = require('./circle.js');
示例中的circle.js文件就是一個(gè)自定義模塊文件。實(shí)際工作中,往往會在根目錄下建立node_modules目錄,把不同模塊按照業(yè)務(wù)規(guī)則建立對應(yīng)目錄。
exports導(dǎo)出模塊
一個(gè)模塊中的變量和方法只能用于當(dāng)前模塊。如果希望被其他模塊使用,就需要通過exports來導(dǎo)出該模塊的對象,方法,屬性。
接下來我們看一下circle.js的內(nèi)容
const PI = 3.14;
exports.area = (r) => PI * r ** 2;
exports.circumference = (r) => 2 * PI * r;
exports.PI = PI;
上例中我們可以看到這是一個(gè)計(jì)算圓面積和周長的模塊。在模塊中使用了exports導(dǎo)出了
- 兩個(gè)方法,area(r) 和 circumference(r)
- 一個(gè)屬性,PI
那么回到我們原先的代碼中,由于我們引入了circle.js,只需要寫出如下代碼就可以進(jìn)行調(diào)用circle.area(r)這個(gè)方法。
const circle = require('./circle.js');
console.log(`半徑為4的園面積: ${circle.area(4)}`);
console.log(`PI = ${circle.PI}`);
將源文件保存為appCircle.js,運(yùn)行appCircle.js后得到下列結(jié)果
D:\Projects\nodejs\NodeDemo>node appCircle.js
半徑為4的園面積: 50.24
PI = 3.14
將模塊定義為類并導(dǎo)出
上面的例子我們看到了導(dǎo)出模塊的屬性和方法。那么從面向?qū)ο蟮慕嵌龋覀兪欠窨梢詫⒛K定義為類并導(dǎo)出。下面就是一個(gè)示例保存在square.js中。
module.exports = class Square {
constructor(width) {
this.width = width;
}
area() {
return this.width ** 2;
}
};
示例中,可以直接使用"module.exports" 來導(dǎo)出類。導(dǎo)出的類名為Square,是用來計(jì)算平方數(shù)的。該類的構(gòu)建器通過width構(gòu)建,使用方法為area(),返回平方數(shù)。
調(diào)用的時(shí)候我們只需要引入類,然后直接調(diào)用area()方法即可。
const Square = require('./square.js'); //引入類
const mySquare = new Square(2); //構(gòu)建Square類
console.log(`平方數(shù): ${mySquare.area()}`); //調(diào)用類方法
輸出結(jié)果:
D:\Projects\nodejs\NodeDemo>node appSquare.js
平方數(shù): 4
node.js模塊的介紹就到這里。本文參考原文-http://bjbsair.com/2020-03-22/tech-info/2817/
const http = require('http')
在node.js中,一個(gè)應(yīng)用程序由若干模塊組成,而這些模塊,我們可以理解為是一個(gè)JavaScript文件,以.js結(jié)尾的文件。
原生模塊
對于上述的'http'是原生模塊,在node.js安裝后是系統(tǒng)自帶的。使用模塊時(shí)只需要通過 require 進(jìn)行引入即可。
在這段代碼中,使用require函數(shù)來引用http模塊,該函數(shù)返回http模塊,將該對象賦值給http之后即可以通過http來訪問http模塊中的屬性及方法。
const http = require('http')
http.createServer(function (request, response) {
//回調(diào)函數(shù)內(nèi)容
}
塊又稱之為核心模塊,常用的核心模塊如下:
- assert 斷言處理
- buffer 緩沖數(shù)據(jù)的存儲與轉(zhuǎn)換
- child_process 子進(jìn)程的創(chuàng)建與管理
- cluster 多進(jìn)程
- console 控制臺
- debugger 內(nèi)置調(diào)試器
- dns DNS相關(guān)
- events 事件處理
- http HTTP服務(wù)器端及客戶端
- https HTTPS服務(wù)器端及客戶端
- net TCP服務(wù)端及客戶端
- os 操作系統(tǒng)信息
- path 文件路釋
- querystrmg 處理HTTP請求中使用的查洵字符串
- repl 實(shí)現(xiàn)REPL(Read-Eval-Print-Loop)
- zlib 通過zlib類庫來實(shí)現(xiàn)數(shù)據(jù)的壓縮及解壓處理
自定義模塊的導(dǎo)入
在實(shí)際工作中,僅僅使用原生模塊是不夠的,我們需要使用自己團(tuán)隊(duì)定義的其他模塊,也就是.js文件。那么如何進(jìn)行使用?
跟使用原生模塊一樣,也通過require函數(shù),不同的是,需要寫名模塊文件的路徑。
const circle = require('./circle.js');
示例中的circle.js文件就是一個(gè)自定義模塊文件。實(shí)際工作中,往往會在根目錄下建立node_modules目錄,把不同模塊按照業(yè)務(wù)規(guī)則建立對應(yīng)目錄。
exports導(dǎo)出模塊
一個(gè)模塊中的變量和方法只能用于當(dāng)前模塊。如果希望被其他模塊使用,就需要通過exports來導(dǎo)出該模塊的對象,方法,屬性。
接下來我們看一下circle.js的內(nèi)容
const PI = 3.14;
exports.area = (r) => PI * r ** 2;
exports.circumference = (r) => 2 * PI * r;
exports.PI = PI;
上例中我們可以看到這是一個(gè)計(jì)算圓面積和周長的模塊。在模塊中使用了exports導(dǎo)出了
- 兩個(gè)方法,area(r) 和 circumference(r)
- 一個(gè)屬性,PI
那么回到我們原先的代碼中,由于我們引入了circle.js,只需要寫出如下代碼就可以進(jìn)行調(diào)用circle.area(r)這個(gè)方法。
const circle = require('./circle.js');
console.log(`半徑為4的園面積: ${circle.area(4)}`);
console.log(`PI = ${circle.PI}`);
將源文件保存為appCircle.js,運(yùn)行appCircle.js后得到下列結(jié)果
D:\Projects\nodejs\NodeDemo>node appCircle.js
半徑為4的園面積: 50.24
PI = 3.14
將模塊定義為類并導(dǎo)出
上面的例子我們看到了導(dǎo)出模塊的屬性和方法。那么從面向?qū)ο蟮慕嵌龋覀兪欠窨梢詫⒛K定義為類并導(dǎo)出。下面就是一個(gè)示例保存在square.js中。
module.exports = class Square {
constructor(width) {
this.width = width;
}
area() {
return this.width ** 2;
}
};
示例中,可以直接使用"module.exports" 來導(dǎo)出類。導(dǎo)出的類名為Square,是用來計(jì)算平方數(shù)的。該類的構(gòu)建器通過width構(gòu)建,使用方法為area(),返回平方數(shù)。
調(diào)用的時(shí)候我們只需要引入類,然后直接調(diào)用area()方法即可。
const Square = require('./square.js'); //引入類
const mySquare = new Square(2); //構(gòu)建Square類
console.log(`平方數(shù): ${mySquare.area()}`); //調(diào)用類方法
輸出結(jié)果:
D:\Projects\nodejs\NodeDemo>node appSquare.js
平方數(shù): 4
node.js模塊的介紹就到這里。