柚子快報(bào)邀請(qǐng)碼778899分享:Node.js
柚子快報(bào)邀請(qǐng)碼778899分享:Node.js
前端核心技術(shù)體系
Node.js定義
Nodejs的作用
1.開發(fā)服務(wù)器應(yīng)用
2.開發(fā)工具類應(yīng)用
3.開發(fā)桌面端工具
Nodejs的下載與安裝
1.nodejs.org
download
選擇LTS版本?
2.CNPM Binaries Mirror (npmmirror.com)https://registry.npmmirror.com/binary.html?path=node/
node的各個(gè)版本,是淘寶的徑向
3.檢驗(yàn)是否下載完成
打開命令行窗口
輸入
node -v
注意空格
Nodejs入門
命令行工具
命令的結(jié)構(gòu)
常用命令
d:?
切換盤
dir
查看盤中文件夾
cd 文件夾名
切換工作目錄
.? 當(dāng)前目錄
..? 上一級(jí)目錄
dir? /s
展示該盤符下所有文件夾? 包括子級(jí)文件夾
nodejs注意點(diǎn)
global頂級(jí)對(duì)象
Buffer
buffer創(chuàng)建
buffer就是一段字節(jié)空間? ? ? ? ? ?開辟的是固定計(jì)算機(jī)內(nèi)存
會(huì)用于處理二進(jìn)制數(shù)據(jù)
alloc(n)創(chuàng)建一個(gè)n字節(jié)的Buffer 開辟多少個(gè)字節(jié)的空間會(huì)將buffer的原始數(shù)據(jù)清零后進(jìn)行輸入,
allocUnsafe(n)所創(chuàng)建的Buffer可能會(huì)包含舊的內(nèi)存數(shù)據(jù)? ? ? ? ? ? 這種方式創(chuàng)建Buffer更快
from會(huì)將傳入的字符串或數(shù)組按照Unicode碼表(完全兼容ASCLL碼表)中的數(shù)字再轉(zhuǎn)化為二進(jìn)制存入Buffer
Buffer操作
與注意事項(xiàng)
計(jì)算機(jī)程序運(yùn)行過程
進(jìn)程? 進(jìn)行中的程序? ? ? ? ? ? 任務(wù)管理器中所顯示正在運(yùn)行的程序
線程
線程屬于進(jìn)程
進(jìn)程包含線程
fs模塊(fsapi)
file? system
1.導(dǎo)入fs模塊? ?
2.寫入文件? ? ?
fs工作的兩種模式:同步與異步
fs異步API
fs.writeFile
寫入文件執(zhí)行回調(diào)函數(shù)同時(shí)進(jìn)行下一步的js代碼? ? ? ? ? ? ? 效率較高
fs.writeFileSync同步API? ? ? ? ? ? ? 等文件寫入后才會(huì)進(jìn)行下一步j(luò)s代碼? ? 順序性較強(qiáng)
fs追加??
appendFile
appendFileSync
追加也可以通過
writeFile的第三個(gè)參數(shù)對(duì)象實(shí)現(xiàn)追加文本
fs.writeFileSync('./text.txt','\r\n拉西呀懦夫',{flag:'a'});
writeFile? ?與? appendFile? ?的前兩個(gè)參數(shù)必寫,是? 文本地址和寫入內(nèi)容
{‘a(chǎn)’,‘b’,[{配置對(duì)象}],[function(){}]}
function(){}? ?通常為err=>{}? ? ? 此時(shí)如果執(zhí)行失敗err返回值是一個(gè)錯(cuò)誤對(duì)象,,執(zhí)行成功是null
?配置對(duì)象寫為flag:'a'
也可以實(shí)現(xiàn)追加寫的效果
fs流式寫入
文件寫入應(yīng)用場(chǎng)景
fs文件讀取
callback函數(shù)有兩個(gè)形參
讀取文件應(yīng)用場(chǎng)景
流式讀取
fs練習(xí)? 實(shí)現(xiàn)文件復(fù)制
方式一 :通過readFile實(shí)現(xiàn)讀取文件
方式二 :流式操作
第二種方法相對(duì)于較大空間的文件運(yùn)行時(shí)占用內(nèi)存更少
fs文件重命名與移動(dòng)
fs文件刪除
fs文件夾操作
readdir(path,(err,date)=>{})
date返回的是文件夾內(nèi)的文件名稱數(shù)組?
fs查看資源狀態(tài)
fs路徑
fs相對(duì)路徑的bug
__dirname
批量重命名
對(duì)文件夾內(nèi)文件首位數(shù)字進(jìn)行重命名
????????
path模塊
resolve? 解決絕對(duì)路徑拼接問題
HTTP協(xié)議
HTTP報(bào)文
就是服務(wù)器與瀏覽器之間相互傳送的文件
瀏覽器通過請(qǐng)求報(bào)文向服務(wù)器發(fā)起請(qǐng)求
fiddler
請(qǐng)求報(bào)文基本組成
url
HTTP響應(yīng)報(bào)文
IP
ip本身就是數(shù)字標(biāo)識(shí)
用來(lái)標(biāo)志網(wǎng)絡(luò)設(shè)備實(shí)現(xiàn)設(shè)備間通信
ip分類
局域網(wǎng)ip可以進(jìn)行復(fù)用
端口
http模塊
創(chuàng)建HTTP服務(wù)端
1. 導(dǎo)入模塊2.創(chuàng)建服務(wù)對(duì)象
createServer內(nèi)部函數(shù)有兩個(gè)形參? ? ? ?一個(gè)? ? ?request? ? ?請(qǐng)求? ? ? 請(qǐng)求報(bào)文的封裝對(duì)象
????????????????????????????????????????????????????????????????????????response? 響應(yīng)? ? ? ? 響應(yīng)報(bào)文的封裝
?內(nèi)部回調(diào)函數(shù)
3.
HTTP服務(wù)注意事項(xiàng)
瀏覽器查看http報(bào)文
如何查看請(qǐng)求體
點(diǎn)擊提交會(huì)向端口發(fā)送post請(qǐng)求
并把信息放在請(qǐng)求體當(dāng)中? ?傳遞給服務(wù)器
在網(wǎng)絡(luò) 處點(diǎn)擊文檔后
點(diǎn)擊負(fù)載? ?內(nèi)可以查看請(qǐng)求體
也可以在載荷處快速查看url當(dāng)中查詢字符串內(nèi)容
如何查看響應(yīng)結(jié)果
響應(yīng)頭在f12 文件? 處? ?標(biāo)頭? 響應(yīng)標(biāo)頭列出的即為響應(yīng)頭
點(diǎn)擊查看源代碼??
第一行 是響應(yīng)行
下面是響應(yīng)頭
f12 文件? 處? ?響應(yīng)? 為響應(yīng)體原始內(nèi)容
提取http請(qǐng)求報(bào)文
敲下回車后,請(qǐng)求報(bào)文就從瀏覽器端發(fā)送到端口
服務(wù)對(duì)象的回調(diào)函數(shù)處理請(qǐng)求報(bào)文
若要獲取請(qǐng)求報(bào)文里面的內(nèi)容? 則應(yīng)將? 獲取代碼放在回調(diào)函數(shù)里面
提取請(qǐng)求體
提取報(bào)文的請(qǐng)求體
獲取url路徑和查詢字符串
導(dǎo)入http模塊
1.導(dǎo)入url模塊
?創(chuàng)建服務(wù)對(duì)象
url.parse(url的字符串,【】)
第二個(gè)參數(shù)如果是true
呢么query屬性將會(huì)設(shè)置為對(duì)象
提取url路徑和查詢字符串的另外一種方式
獲取url路徑
url.pathname
獲取查詢字符串
url.searchParams.get('keyword');
?
http請(qǐng)求練習(xí)
注意:結(jié)構(gòu)賦值的參數(shù)命名不可以有大寫字母
設(shè)置http響應(yīng)報(bào)文
response.statusCode =? ? ?;
設(shè)置響應(yīng)行上的響應(yīng)狀態(tài)碼
僅且只能有一個(gè)end方法執(zhí)行? ? ?必須有一個(gè)
HTTP響應(yīng)練習(xí)
練習(xí)優(yōu)化
通過fs讀取html文件
網(wǎng)頁(yè)資源加載基本過程
響應(yīng)練習(xí)拓展
實(shí)現(xiàn)網(wǎng)頁(yè)引入外部資源
靜態(tài)資源與動(dòng)態(tài)資源
搭建靜態(tài)資源服務(wù)
靜態(tài)資源目錄與網(wǎng)頁(yè)根目錄
網(wǎng)頁(yè)中的URL-絕對(duì)路徑? ? ?相對(duì)路徑
./ 當(dāng)前層級(jí)
相對(duì)路徑不可靠,開發(fā)中不常用
設(shè)置MIME類型
解決亂碼問題
也可以在html的meta標(biāo)簽內(nèi)寫? ? charset
但響應(yīng)頭的優(yōu)先級(jí)更高
一般的文件只有頁(yè)面設(shè)置字符
完善錯(cuò)誤處理
請(qǐng)求方法的錯(cuò)誤
get? post? 使用場(chǎng)景
柚子快報(bào)邀請(qǐng)碼778899分享:Node.js
相關(guān)鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。