1. 程式人生 > >閑來無事,把node又拾起來看看

閑來無事,把node又拾起來看看

常見 ada 一個 時間 lib stdout 讀取數據 parse 轉化

處在國企單位,整天閑的要死要死的,民族的花朵都快枯萎了

哎呀呀,打起精神.......早睡早起,多看書。。。開始進入苦讀狀態,苦練武功,爭取有朝一日報效祖國。。。哈哈 開玩笑的

開始看書吧 記得Node.js+MonogoDB+AngularJs 這本書好像是去年4月份買的 買了好久了 一直沒領會他的精髓 上班沒事 絕對再看看 雖然對我的工作沒什麽幫助,哎呀呀 還是看吧.....................

一、node的事件模型:包含了事件隊列、事件循環、線程池

二、實現定時器:

超時時間:延遲一段時間執行,只需要執行一次setTimeout();clearTimeout()取消超時時間函數

時間間隔:按定期的延遲時間間隔執行工作,對於定期工作setInterval();

即時計時器:setImmediate();允許你把工作調度為在時間隊列中的當前事件完成之後執行,即在I/O事件的回調函數開始執行之後

process. nextTick:調度工作,在I/O時間被觸發之前執行

從事件循環中取消定時器引用:unref()/ref()重新引用

三、事件發射器和監聽器:

創建自定義事件:

四、Node.js處理數據:

數據形式有:文本、JSON字符串、二進制緩沖區、數據流

1、處理json

Json字符串轉js對象:JSON.parse(String);轉化為對象用點來訪問

js對象轉為JSON字符串:JSON.stringify();

2.使用buffer管理二進制的緩沖數據

(緩沖數據:有字節組成,比文本數據占用較少空間)

node.js提供buffer(緩沖區模塊,全局性的,不需要require()引入)允許在緩沖結構中創建、讀取、寫入和操作二進制數據

創建緩沖區:new Buffer();

寫入緩沖區:buffer.writer();

讀取緩沖區:tostring();

確定緩沖區長度:buffer.length();返回的是字節長度

復制緩沖區:buffer.copy(new_buffer);

緩沖區切片:buffer.slice(start,end);

拼接緩沖區:Buffer.concat();

3.使用Stream模塊來傳送數據流

(stream模塊是node的重要模塊。數據流是可讀、可寫、或者即可讀又可寫的內存結構)

流的目的是從一個地方向另一個地方傳送數據的通用機制;流一般用於HTTP數據和文件

Readable流(可讀流):

常見實例:在客戶端的HTTP相應、在服務器的HTTP請求、fs讀取流、zlib流、crypto(加密)流、TCP套接字、子進程的stdout和stderr、process.stdin

公開事件:readable/data/end/close/error

方法:read():從流中讀取數據。可以返回string對象、buffer對象或者null

setEncoding();設置從read()請求讀取返回string的編碼

pause();暫停從該對象發出的data事件

resume():恢復從該對象發出的data事件

pipe(de,[options]);把這個流的輸出傳輸到由de目的地指定的writable流對象

unpipe():從寫入的目的地斷開這一對象

Writable流(可寫流):

把數據寫入一種可以輕松的在代碼的另一個區域被使用的形式的機制

常見實例:客戶端上的HTTP請求、服務騎上的HTTP響應、fs寫入流、zlib流、crypto(加密)流、TCP套接字、子進程的stdin、process.stdout/process.stderr

公開事件:drain/finish/pipe/unpipe

方法:

.................................喲嘿 下班了 ...明天繼續

閑來無事,把node又拾起來看看