node學習筆記(三)

//事件驅動events
//events是node最重要的模塊沒有之一,由於node.js自己的架構就是事件式的,而他提供了惟一的接口,因此堪稱node.js事件編程的基石;
//events幾乎被全部模塊依賴

//事件發射器
//EventEmitter支持多個事件監聽器,監聽器會依次調用;

var emitter = require('events').EventEmitter;
var e = new emitter();

//爲go事件增長2個監聽器
e.on('go',function(obj,willDoing){
console.log(obj + ',will do ' + willDoing);
})

e.on('go',function(obj,isDoing){
console.log(obj + ',is doing ' +isDoing );
})

//發射
e.emit('go','smile','homework');    //smile,will do homework
//smile,is doing homework
//EventEmitter經常使用API

//爲指定事件建立一個監聽器,接受一個字符串event和一個回調函數listener;
e.on(event,listener);

//發射event事件,接受N個參數;
e.emit(event,[arg1],[arg2].....[argN]);

//爲指定事件註冊一個單詞監聽器,即監聽器只會觸發一次;
e.once(event,listener);

//移除指定事件的某個監聽器,listener必須是註冊過的監聽器
e.removeListener(event,listener);

//移除全部事件的全部監聽器,若是指定event則移除指定事件的全部監聽器;
e.removeAllListeners([event]);


//error事件
//遇到異常的時候會發射error事件
e.emit('error');

//繼承EventEmitter
//大多數時候,咱們不會直接使用EventEmitter,而是在對象中繼承他,包括http,fs,net,只要支持事件響應的核心模塊,都是EventEmitter的子類;


//文件系統fs
//fs模塊是文件操做的封裝,它提供了文件的讀取,寫入,改名,刪除,遍歷目錄,連接等Posix操做
//fs模塊和其餘模塊不一樣所有提供了異步和同步操做

var fs = require('fs');

//fs.readFile();
//讀取文件函數
//filename:文件名,encoding:編碼,callback(err,data):err錯誤,data內容;
fs.readFile(filename,[encoding],[callback(err,data)]);

//讀取文件函數(同步版)
//若有錯誤須要用try..catch來處理
//fs.readFileSync(filename,[encoding]);


//fs.open();
//Posix open函數的封裝
//fs.open與c#中的fopen相似接受兩個必選參數
//path:文件路徑
//flags能夠是如下值:
//{
r : 讀取 模式打開文件;
r+ : 讀寫 模式打開文件;
w : 寫入 模式打開文件, 沒有 則建立
w+ : 讀寫 模式打開文件, 沒有 則建立
a : 追加 模式打開文件, 沒有 則建立
a+ : 讀取追加 模式打開文件, 沒有 則建立
//}
//mode參數用於建立文件時給文件指定權限,默認是0666.回調函數將會傳遞一個文件描述符fd
//文件權限指的是posix操做系統中對文件讀取和訪問權限的規範,一般用一個八進制數來表示
//例如:0754表示文件全部者的權限是7(讀,寫,執行),
//同組用戶權限是5(讀,執行),其餘用戶權限是4(讀),寫成字符表示就是-rwxr-xr--
//文件描述符是一個非負整數,表示操做系統內核爲當前進程所維護的打開文件的記錄表索引
fs.open(path,flags,[mode],[callback(err,fd)]);

 

//fs模塊函數表
打開文件     fs.open(path,flags,[mode],callback(err,fd));
關閉文件     fs.close(fd,[callback(err)]);
讀取文件內容    fs.readFile(filename,[encoding],[callback(err,data)]);
寫入文件內容    fs.writeFile(filename,[encoding],[callback(err)]);
刪除文件     fs.unlink(path,[callback(err)]);

 

 
 
相關文章
相關標籤/搜索