常用工具,命令
1.0 nvm常用命令
- nvm項目地址:nvm-github地址
- 查看所有已安裝的本地的node版本
nvm list
- 切換node版本
nvm use 版本號
- 安裝指定版本的node
nvm install 版本號 位數
- 卸載已安裝的指定版本的node
nvm uninstall 版本號
1.1模塊的分類
模塊分爲核心模塊、文件模塊,其中包是一種特殊的文件模塊
- 核心模塊
- fs file system
- http
- os
- path
- querystring
- url
1.2模塊三兄弟 require、module、exports
- require的實現原理
補充了exports是指向modules.exports的一個指針,exports能做的,modules.exports都能做的。
- require查找文件、包原理
第二次加載的時候優先從緩存查找讀取,
node_modules中沒有的,從父文件夾中查找,如果沒有,直到根目錄爲止
- module
裏面保存了模塊的信息路徑、父子信息、曝露出的對象信息
- exports
module.exports 別名
module.exports=123;已經使用過一次了,exports就不生效了
module.exports.a=12;這樣使用,exports是還可以使用的
1.4包
package.json是包的說明書,
dependencies當前包所依賴的包:>、<、>=、<=、~、*、" "、X、^、
devDependencies 開發環境中包所依賴的包:
1.5npm
npm init 創建package.json文件
npm install 將package.json中的文件依賴的包從網上下載到本地
npm install -save 包名 將包下載下來並且加載到dependencies中去
npm i -S 包名 替代上面的命令
npm install -save-dev 包名 將包下載下來並且加載到devDependencies中去
npm i -D 包名 替代上面的命令
npm install -g 包名 全局安裝 安裝的是全局工具
npm docs 包名 查看包的文檔
1.6nrm npm的數據源管理工具
nrm ls 查看npm的數據源
nrm use 切換npm下載包的地址
nrm test 測試下哪個數據源快
1.7 3m
npm node的包管理工具
nvm node的版本管理工具
nrm npm的數據源管理工具
###1.8箭頭函數
語法糖替代function(){} v=>v
2.i/o
2.1什麼是i/o?
io input、output 輸入輸出,電腦的輸入輸出,例如音頻錄音表示聲音輸入、聽音樂是聲音的輸出
網絡上的傳輸全部是在傳字符串,i/o在服務器上可以理解爲讀寫操作。
2.2什麼是併發?
一個時間段中有幾個程序都處於已啓動運行到運行完畢之間。
3異步i/o與事件驅動
3.1什麼是進程?
進程是爲運行當中的應用程序提供運行環境的
一個運行當中的應用程序就會有一個進程與之相對應
3.2什麼是線程?
線程是用來運行應用程序中代碼的,
一個線程在一個時間只能做一件事件。
多線程,調度起來很麻煩。
node是單線程執行,用異步替代了多線程
3.3同步、異步有什麼不同?
異步不會阻塞後面的代碼,同步會阻塞後面的代碼
一條線程先執行同步的代碼後執行異步的代碼。
3.4異步非i/o操作和異步i/o操作
異步非io setTimeout setInterval
異步IO操作 操作文件 網絡操作 fs
3.5異步和多線程的比較?
node的異步是幫助我們去做了多線程的操作,簡化了代碼
4.文件操作
###4.1文件的完整讀寫
fs模塊---》操作文件---》io----》node的特長
fs模塊是node非常重要的模塊,能體現出node的優勢
- fs.readFile() 讀文件
- fs.writeFile() 寫文件
- fs.appendFile() 在文件的內部去追加寫一些內容
- fs.mkdir() 創建文件夾
- fs.readdir() 讀文件夾
- fs.access() 判斷路徑
- fs.stat()
isFile:用於判斷被查看的對象是否爲一個文件,如果是返回true,否則,返回false;
isDirectory:用於判斷被查看的對象是否爲一個目錄,如果是的話則返回true,否則,返回false;
isSymbolicLink:用於判斷被查看的文件是否爲一個符號鏈接文件,如果是的話則返回true,否則,返回false。該方法僅在lstat方法的回調函數中有效;
5.異常處理
什麼是異常?
計算機不能處理的狀況稱之爲異常
try catch 只能捕獲同步異常
try {
fs.accessSync(’./02sfdasdfio.js’);
} catch (err) {
console.log(“1”+err);
}
異步異常對象和被try catch捕獲的對象是一樣的