1. 程式人生 > >Nodejs模塊

Nodejs模塊

rst 事件隊列 功能 哈希 一個 屬性 form family 讀取

一、模塊:模塊是一個獨立的功能體。

1.nodejs下模塊分為核心模塊、自定義模塊、第三方模塊

2.nodejs下每一個文件(包括目錄)都可以稱為模塊

3.nodejs下,任意一個腳本文件都自動被一個構造函數所包含

(function(exports,require,module,__filename,__dirname){

//程序員編寫的代碼

})

__filename:當前模塊(文件)的絕對路徑和名稱

__dirname:當前模塊(文件)的絕對路徑

require:用於引入一個模塊,模塊前需要加路徑require(‘xxx.js’);如果模塊後綴名是

js則可以省略

module:指當前模塊

module.exports:當前模塊的導出對象,可以供其他模塊使用的屬性的方法

exports:等價於module.exports

4.模塊的分類

以路徑開頭

不以路徑開頭

文件模塊

require(‘./xxx’),常用語用戶自定義的模塊,如果後綴為js,則可以省略

require(‘querstring’)常用於引入官方提供的核心模塊

目錄模塊

require(‘./xxx’),會在目錄xxx下自動尋找package.jsonmain屬性對應的文件,如果沒有則會自動引入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模塊