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