Node在process命名空間實作了幾個全域值
process.version node版本process.argv 命令列引數作為陣列process.env 環境變數物件,process.env.PATHprocess.pid process idprocess.getuid() 回傳使用者idprocess.cwd() 回傳目前工作目錄process.chdir() 更換目錄process.exit 離開產生事件的node物件(event emitters): 會定義一個on()的方法來註冊事件與處理函式
emitter.on(name,fn) 註冊fn來處理name事件emitter.addListener(name,fn) addListener 等同 onemitter.once(name,fn) 僅處理一次emitter.listeners(name) 回傳處裡函式(fn)組成的陣列emitter.removeListeners(name,fn_1) 在事件name將fn_1移除emitter.removeAllListeners(name) 在事件name所有處理函式移除stream API(讀取)
stream.on("data",fn) 當資料可以取用時,會將資料傳給fn()當引數stream.on("end",fn) 當EOF發生時(表示後續沒有資料了)stream.on("error",fn_E) 當發生錯誤時,將例外傳給fn_E()stream.readable 當stream仍式開始的可讀資料流則回truestream.pause() 暫停data事件stream.resume() 重新啟動stream API(寫入)
stream.wirte(buffer) 寫入2進位資料stream.write(string , encoding) 寫入字串,編碼預設為utf-8stream.end() 關閉資料流stream.end(buffer) 寫入最後一段資料然後關閉stream.end(string, encoding) 寫入最後一段資料然後關閉stream.writeable 是否資料流式可寫入的stream.on("drain", fn) 內部緩衝區被清空時呼叫fnNode 使用檔案系統var fs = require('fs') 載入 file System api
// 使用同步讀取test.json 並使用utf8編碼
var syncfileText = fs.readFileSync('test.json','utf8');
// 使用非同步讀取test.json 並使用utf8編碼
var fileText = fs.readFile('test.json',function(error,buffer){
if(error) throw error;
process(buffer);
});