node.js開發(fā)入門之buffer用法詳解

node.js開發(fā)入門之buffer用法詳解

ID:8972544

大?。?3.84 KB

頁數(shù):9頁

時間:2018-04-13

node.js開發(fā)入門之buffer用法詳解_第1頁
node.js開發(fā)入門之buffer用法詳解_第2頁
node.js開發(fā)入門之buffer用法詳解_第3頁
node.js開發(fā)入門之buffer用法詳解_第4頁
node.js開發(fā)入門之buffer用法詳解_第5頁
資源描述:

《node.js開發(fā)入門之buffer用法詳解》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應用文檔-天天文庫。

1、9web前端視頻教程http://www.maiziedu.com/course/web/Node.js開發(fā)入門之Buffer用法詳解熟悉JavaScript的童鞋應該對Node.js都不陌生,沒錯Node.js是一個基于ChromeJavaScript運行時建立的平臺,用于方便地搭建響應速度快、易于擴展的網(wǎng)絡(luò)應用。Node.js?使用事件驅(qū)動,?非阻塞I/O?模型而得以輕量和高效,非常適合在分布式設(shè)備上運行數(shù)據(jù)密集型的實時應用。正是由于Node.js的這些特性使得其在如今的編程中越來越受歡迎,對于新手程序

2、猿來說很有必要掌握Node.js技術(shù)。本文小編就將為大家介紹Node.js中Buffer類的使用,希望對大家學習Node.js有幫助吧。???????其實,Buffer類在Node.js的使用中,經(jīng)常會用到,特別是在用Node.js做服務端開發(fā)時,http、tcp、udp、文件io等等類型的操作,都離不開Buffer類。Buffer是什么Buffer代表一個緩沖區(qū),存儲二進制數(shù)據(jù),是字節(jié)流,在網(wǎng)絡(luò)傳輸時,就傳輸?shù)倪@種字節(jié)流。編碼格式雖然一般的字符串是有編碼格式的,比如UTF-8。但Buffer是沒有編碼格式

3、的。兩者可以相互轉(zhuǎn)換,轉(zhuǎn)換時必須指定編碼格式。在http模塊中,http.createServer方法需要的回調(diào)函數(shù)的原型是:function(req,res)???9web前端視頻教程http://www.maiziedu.com/course/web/?這個回調(diào)的第一個參數(shù),req,類型是http.IncomingMessage,而http.IncomingMessage是一個只讀的流,實現(xiàn)了Readable接口,stream.Readable讀到的數(shù)據(jù)(監(jiān)聽data事件可以處理),就是Buffer對象

4、,是字節(jié)流。而我們在程序中使用時,經(jīng)常是要轉(zhuǎn)換為String。反過來,res(類型http.ServerResponse,可寫的流,實現(xiàn)了Writable接口)有個方法setDefaultEncoding,用來設(shè)置流的編碼格式,在write數(shù)據(jù)時,會使用指定的編碼格式來編碼數(shù)據(jù),然后發(fā)送給客戶端。這就是說,網(wǎng)絡(luò)傳輸?shù)氖荁uffer,程序需要處理String,Buffer和String之間可以轉(zhuǎn)換。Buffer有toString方法,可以按指定的編碼格式將字節(jié)流轉(zhuǎn)換為String。在文件系統(tǒng)模塊中,fs.cr

5、eateWriteStream和fs.createReadStream兩個方法都有一個可選參數(shù)options,可以指定defaultEncoding,這里指定的編碼格式,也是用于在Buffer和String之間轉(zhuǎn)換的。目前我們在Node.js里,Buffer在轉(zhuǎn)換為字符串時,toString方法的第一個參數(shù)就是編碼類型,支持常見的編碼格式:utf8,多字節(jié)編碼的Unicode字符,大多數(shù)文檔和網(wǎng)頁采用這種編碼格式ascii,8bit編碼,一個字符占1個字節(jié)utf16le,小端編碼的unicode字符utf1

6、6be,大端編碼的unicodeucs2,unicode編碼,每個字符占兩個字節(jié)base64,Base-64字符串編碼hex,每個字節(jié)編碼為兩個十六進制字符假如你不確認某個編碼格式是否正確,可以使用Buffer.isEncoding(encoding)方法來測試。9web前端視頻教程http://www.maiziedu.com/course/web/在使用Buffer的toString方法時,如果你不指定編碼格式,則默認使用utf8來轉(zhuǎn)換。toString原型:buf.toString([encoding

7、][,start][,end])第一個參數(shù)是編碼格式,第二個是開始位置(0到buf.length-1),第三個是結(jié)束位置(不包含這個索引位置的數(shù)據(jù))。創(chuàng)建一個Buffer實例對于Buffer實例的創(chuàng)建,使用new操作符,有四種方法可實現(xiàn):newBuffer(size),創(chuàng)建一個指buffer定大小的buffernewBuffer(array),根據(jù)一個字節(jié)數(shù)組來創(chuàng)建一個buffernewBuffer(str[,encoding]),根據(jù)一個字符串和編碼格式創(chuàng)建buffer,不指定編碼時默認使用utf8new

8、Buffer(buffer),根據(jù)buffer實例創(chuàng)建一個新的buffer比如下面的代碼可以創(chuàng)建Buffer的實例:varbuf1=newBuffer(256);varbuf2=newBuffer("HelloBuffer");varbuf3=newBuffer([0x65,0x66,0x67]);varbuf4=newBuffer(buf2);但有一點需要說明的是,使用new9web前端視頻教程http://w

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。