Nodejs模塊
一、模塊:模塊是一個獨立的功能體。
1.在nodejs下模塊分為核心模塊、自定義模塊、第三方模塊
2.在nodejs下每一個文件(包括目錄)都可以稱為模塊
3.在nodejs下,任意一個腳本文件都自動被一個構造函數所包含
(function(exports,require,module,__filename,__dirname){ //程序員編寫的代碼 })
__filename:當前模塊(文件)的絕對路徑和名稱 __dirname:當前模塊(文件)的絕對路徑 require:用於引入一個模塊,模塊前需要加路徑require(‘xxx.js’);如果模塊後綴名是 module:指當前模塊 module.exports:當前模塊的導出對象,可以供其他模塊使用的屬性的方法 exports:等價於module.exports |
4.模塊的分類
|
以路徑開頭 |
不以路徑開頭 |
文件模塊 |
require(‘./xxx’),常用語用戶自定義的模塊,如果後綴為js,則可以省略 |
require(‘querstring’)常用於引入官方提供的核心模塊 |
目錄模塊 |
require(‘./xxx’),會在目錄xxx下自動尋找package.json中main屬性對應的文件,如果沒有則會自動引入index.js |
require(‘xxx’),要求引入的目錄下的node_modules中,如果沒有則會到上一級目錄下尋找,知道頂層,常用語第三方模塊 |
5.核心模塊
5.1查詢字符串模塊-querystring
在URL中問號後的部分就是查詢字符串
parse() 將查詢字符串解析為對象
Stringify() 將對象格式轉為查詢字符串
5.2URL模塊
parse() 將一個完整的URL解析為對象
protocol 協議
hostname 主機名稱(域名/IP地址)
port 端口
pathname 文件在服務器上的路徑
query 查詢字符串
hash 獲取哈希(當前頁面跳轉)部分
format() 將對象格式化為URL
query 屬相對應的值要求是對象
//引入查詢字符串模塊 const querystring = require(‘querystring‘); //引入URL對象 const url = require(‘url‘); var str = ‘http://xxxx‘; //將url解析為對象 var obj = url.parse(str); //console.log(obj); //獲取查詢字符串 var qs = obj.query; //將查詢字符串解析為對象 var obj2 = querystring.parse(qs); console.log(obj2.course,obj2.cid); |
6.文件系統模塊-fs
對比同和異步的區別?
同步會阻止後續代碼的執行,只有方法執行完才會繼續執行後邊的代碼,是通過方法返回值來獲取結果
異步不會阻止後續代碼的執行,把執行放到事件隊列中執行,在所有主線程代碼執行完才會執行事件隊列的內容,是通過回調函數來獲取結果
6.1創建目錄
mkdir(路徑,回調函數) / mkdirSync(路徑)
6.2讀取目錄
readdir(路徑,回調函數) / readdirSync(路徑)
6.3移除目錄
rmdir(路徑,回調函數) / statSync(路徑)
6.4查看文件的狀態
stat(路徑, 回調函數) / statSync(路徑)
6.5清空寫入文件(創建文件)
writeFile(路徑, 數據, 回調函數)/writeFileSync(路徑, 數據)
6.6追加寫入文件(創建文件)
appendFile(路徑, 數據, 回調函數)/appendFileSync(路徑,數據)
6.7讀取文件
readFile(路徑, 回調函數)/readFileSync(路徑)
6.8刪除文件
unlink(路徑, 回調函數)/unlinkSync(路徑)
6.9判斷文件(目錄)是否存在
existsSync(路徑)
eg:計數器:判斷文件num.txt是否存在,如果不存在則創建創建,並存儲值0,;從num.txt中讀取數字,然後再加1,打印出來;把加1後的結果再次寫入到num.txt中。
1 const fs = require(‘fs‘); 2 function show(){ 3 if(!fs.existsSync(‘num.txt‘)){ 4 fs.writeFileSync(‘num.txt‘,0); 5 console.log(‘創建新文件成功‘); 6 }else{ 7 var res = fs.readFileSync(‘num.txt‘); 8 var num = parseInt(res); 9 num+=1; 10 fs.writeFileSync(‘num.txt‘,num); 11 console.log(num); 12 } 13 } 14 show();View Code
Nodejs模塊