5. http模塊
5.1IP 點(diǎn)分十進(jìn)制 a.b.c.d 其中每個(gè)字母取值0-255之間
5.2域名和域名服務(wù)器Domain Name
5.3DNS服務(wù)器將域名解析為IP
5.4端口號(hào),每個(gè)web服務(wù)對(duì)應(yīng)唯一的端口號(hào),每個(gè)端口號(hào)不能被多個(gè)端口號(hào)占用,
5.5創(chuàng)建web服務(wù)
const http = require('http')
const server = http.createServer()//創(chuàng)建服務(wù)
server.on('request',function(req,res){
//綁定request事件
})
//啟動(dòng)服務(wù)
server.listen(8080,function(){
console.log('server running at localhost')
}
)
5.6 request 請(qǐng)求
req.url //請(qǐng)求地址
req.method //請(qǐng)求方法
5.7 respond
res.end() //調(diào)用res.end()方法 ,向客戶端發(fā)送文本內(nèi)容
5.8解決中文亂碼
設(shè)定響應(yīng)頭,需要在res.end()上面
res.setHeader('Conten-Type','text/html:charset= utf-8')
5.9不同請(qǐng)求地址,不同內(nèi)容
獲取url地址;設(shè)置默認(rèn)響應(yīng)內(nèi)容;判斷用戶是否請(qǐng)求/ 或 index.html
判斷用戶請(qǐng)求是否為/about.html;設(shè)置Content-Type 請(qǐng)求頭
使用res.end()把內(nèi)容響應(yīng)給客戶端
6時(shí)鐘案例
把文件的實(shí)際存放路徑作為每個(gè)資源的請(qǐng)求url地址
服務(wù)器充當(dāng)?shù)慕巧褪且粋€(gè)字符串的搬運(yùn)工
7模塊化
7.1模塊化概念
小霸王游戲機(jī),卡帶與整體可以拆分。編程過(guò)程中把大文件拆成獨(dú)立互相依賴的多個(gè)小模塊。把復(fù)雜的問(wèn)題拆分為多個(gè)小模塊。
模塊化好處:好處多多,能用就用
模塊分類:內(nèi)置(fs、path、http)自定義(.js文件)第三方模塊(既不是官方也不是自己開(kāi)發(fā)的模塊)//軟件官方,本人,其他人
加載其他模塊,會(huì)執(zhí)行被加載模塊中的代碼。
const custom = require('./custom.js') //加載自定義模塊 可以省略.js
const moment = require('moment') //加載第三方模塊
模塊作用域:在自定義模塊中變量、方法、只能在當(dāng)前模塊內(nèi)被訪問(wèn)。用來(lái)防止全集變量的污染
module 對(duì)象 ,用此對(duì)象來(lái)對(duì)外暴露塊作用域內(nèi)的,內(nèi)部有一個(gè)exports對(duì)象
當(dāng)使用require()方法導(dǎo)入自定義模塊時(shí),得到就是module.exports所指的對(duì)象。導(dǎo)入的結(jié)果以module.exports為準(zhǔn)
默認(rèn)情況下 exports 和module.exports 指向的同一個(gè)對(duì)象
7.2CommJS規(guī)范
7.3Node.js中模塊的三大分類
7.4npm管理包
7.5規(guī)范的包結(jié)構(gòu)
7.6了解模塊的加載機(jī)制