NodeJS中的子產品和包
- Node使用子產品的原因
- Node中子產品的使用(CommonJS标準)
- 核心子產品
- npm包管理器
- Node的檔案系統
-
- fs子產品
Node使用子產品的原因
- 可以提高代碼的使用率,可讀性,減少程式的代碼量
- 可以實作代碼的共享
- 根據實際開發的需求對外暴露子產品的屬性和方法
Node中子產品的使用(CommonJS标準)
- 使用moduel.exports導出子產品:讓子產品對外暴露
- 使用者可以通過require(子產品名)将子產品導入到目前的程式中使用
- 使用exports導出子產品中的部分的屬性
exports.sayHello=function(name){
console.log('你好'+name);
console.log('今天是'+show_day[day-1]);
}
核心子產品
-
子產品:包括了作業系統的詳細資訊os
-
子產品:實用工具子產品,提供的功能幫助使用者簡化開發util
-
子產品:用于解決多平台目錄路徑問題path
- 屬性:
path.delimiter
path.sep
- 方法:
- 屬性:
-
子產品:url
- 先導入url子產品,然後通過parse方法實作對位址的解析:
const url = require('url'); const myUrl = url.parse('http://localhost:8080/index.html?username=張三&password=123456'); //url位址中的符号:?:是請求位址和請求參數之間的分隔符
- 先導入url子產品中的URL類,将位址字元串作為參數傳遞給URL類的構造函數對位址進行解析
const{URL}=require('url'); constmyurl=newURL('http://localhost:8080/index.html?username=張三&password=123456');
-
解析url位址中查詢字元串:URLSearchParams類的使用
先導入:
const{URL,URLSearchParams}=require('url');
調用方法:get方法擷取值
URL類的屬性之一是:
searchParams
是searchParams
類的對象,在該類中定義方法get(),用來擷取查詢字元串中的參數URLSearchParams
-
子產品:對URL查詢字元串進行處理和解析querystring
-
方法:将URL查詢字元串解析成鍵值對集合parse
-
方法:将對象(鍵值對)轉換成URL的查詢字元串,實際上就是parse方法的逆操作stringify
-
npm包管理器
npm(Node Package Manager)包管理器
更新npm:
npm install npm -g
:-g是安裝參數,表示全局安裝
安裝包:
- 安裝本地包:
确定安裝包版本(安裝指定版本的包):npm install 包名
安裝全局的包:npm install 包名@版本号
npm install -g 包名
檢視安裝資訊:
npm list
-->檢視目前目錄下安裝的包
檢視全局安裝的包:
npm list -g 包名
package.json檔案的功能:
- 列出目前項目所依賴的包
- 指定目前項目所使用的包的版本
-
實作可重用的建構,更易于其他開發人員共享包
建立預設的package.json
npm init --yes
包的使用環境
安裝在開發與測試環境下使用的包(會在package.json檔案中加入"devDependencies"節點)
npm install 包名 --save-dev
安裝在生産環境中使用的包(會在package.json檔案中加入"dependencies"節點)
npm install 包名
包的更新(更新)
npm update 包名
-->更新目前目錄下指定的包
npm update -g 包名
-->更新全局的包
包的解除安裝
npm unistall 包名
-->解除安裝"dependencies"節點下的包(生産環境)
npm unistall 包名
--save-dev -->解除安裝"devDependencies"節點下的包(開發與測試環境)
npm unistall -g 包名
-->解除安裝全局的包
清空npm的本地緩存
npm cache clean
釋出自己的包
在npm伺服器上注冊使用者,使用npm publish釋出。
安裝淘寶的npm鏡像伺服器
npm install -g cnpm --registry=https://registry.npm.taobao.org
在安裝包時,使用cnpm代替npm
Node的檔案系統
fs子產品
fs子產品:提供了檔案操作的API
fs子產品共有5個類:
- fs.Dirent類:(訓示檔案的類型)
- fs.FSWatcher類:(監視檔案)
- fs.ReadStream類:讀取流(檔案輸入流)
- fs.WriteStream類:寫入流(檔案輸出流)
- fs.Stats類:檔案的資訊(檔案的狀态)
fs子產品中方法的分類:
- 同步方法:方法名帶有Sync字尾
- 異步方法:方法名不帶Sync字尾,最後一個參數是回調函數
fs子產品的常量(FS常量)
Node中檔案路徑的表示方式:
- 字元串方式:
- windows下路徑分隔符為: \
- Linux下路徑分隔符為:/
- Buffer方式:Buffer.from(字元串) --> 主要用于linux系統
- URL方式:在Node7.6.0以上版本使用,支援file協定。在不同的作業系統下,解析出來的路徑會有差別。
檔案模式(檔案通路權限):
- a:以追加的方式打開檔案,若檔案不能再則建立
- a+:以讀取追加的方式打開檔案,若檔案不能再則建立
- r:以隻讀的方式打開檔案,若檔案不存在則抛出異常
- r+:以讀取和寫入的方式打開檔案,若檔案不存在則抛出異常
- w:以寫入的方式打開檔案,若檔案不存在則建立
- w+:以讀取和寫入的方式打開檔案,若檔案不存在則建立
檔案與目錄的基本操作
- 檔案的打開
- 同步打開:
fs.openSync;
- 異步打開:
- 同步打開:
- 擷取檔案的資訊fs.Stats
-
:判斷是否為目錄stats.isDirector([path])
-
:判斷是否是檔案stats.isDirector([path])
-
- 用異步的方式讀取檔案中指定的資料
- 建立目錄:
fs.mkdir(path,callback)
- 删除目錄:
fs.rmdir(path,callback)
- 删除檔案:
fs.unlink(path,callback)