Node.js API學習筆記(一)

來源:互聯網
上載者:User

標籤:blog   http   io   ar   os   使用   sp   檔案   div   

此文章已經發表於本人部落格。

Terminal(終端)

    說起這個使用過linux系統的兄台一般都會知道的,本人理解:類似Putty這些ssh工具通過 軟體來實現遠端控制主機,對於我們使用者來說,它會顯示資訊並能接收資訊並處理,這個東東就是終端。至於什麼偽終端應該就是用軟體實現使一套輸入輸出裝置 可以支援多個軟終端。

    這裡說下node.js中有關的終端模組3個,分別是:STDIO、TTY、REPL。

一、STDIO

     如果我沒理解錯控制台應該是屬於noddjs標準的輸入輸出,一般把資訊輸出到stdout或者是stderr。

二、TTY

    這個tty好像就跟偽終端解析一樣,現在還不明白,不過不是很主要聽講說是準備放棄。

三、REPL

    這是一個互動式解譯器,至於什麼是互動性這不解釋了。這個REPL為node啟動並執行狀態以及資訊提供一種互動方式。比如我們在windows下命令列輸入:

    node
    >consolg(‘hello world!‘);

這樣就會列印出hello world字元。

四、利用控制台

    上面使用console.log();語句列印資訊,那麼我們可以使用這個查看很多資訊,比如變數的值、堆棧的資訊以及斷言。

    console.log([data],[...]):第一個參數是字串,可以帶上像C語言一樣的預留位置,後面可選,本人網上查看了一些資料,預留位置支援%s(字串),%d(數字),%j(json)。例子如下:

    //不帶預留位置以及參數,輸出:hello world    console.log(‘hello world‘);    //帶上預留位置,不過不帶參數。輸出:hello     console.log(‘hello %s‘);    //帶上預留位置以及參數。輸出:hello world    console.log(‘hello %s‘, ‘world‘);    //輸出:age is 30    console.log(‘age is %d‘,30);    //輸出:json data:{‘age‘:30}    console.log(‘json data:%j‘,{age:30});    //輸出:{age:30}    console.log({age:30});    //時間標記,標識lable開始    console.time(‘lable‘);    //時間標記,標識lable結束。輸出lable : 100ms(可以計算中間的處理時間)    console.timeEnd(‘lable‘);    //列印當前堆棧lable的資訊。輸出Trace : lable ----------------------    console.trace(‘lable‘);    //斷言文法:console.assert(expression,[message])    //輸出AssertionError : 異常咯    console.assert(false,‘異常咯‘);

 

 

五、Buffer

    這個Buffer的出現基本上說就是為瞭解決js本身對於二進位不友好的局面。大家都知道nodejs的存在依賴網路,對不同資源的請求以及響應甚至是檔案都是用二進位出裡的,使用inodejs專門提供這個機制來處理位元組流。

    目前本人收集了Buffer支援的編碼有:‘ascii‘:這個速度快;‘utf8‘:支援Unicode字元;‘base64‘:base64字串編碼; ‘utf16le‘、‘ucs2‘、 ‘hex‘。

    建立Buffer執行個體,目前知道的是有4種;

   
//第一種指定大小,這個大小是固定的不會因為write的寫入而改變    var buf = new Buffer(8);    buf.write(‘luoliang‘);    console.log(buf);    //第二種:數組初始化。輸出:<Buffer 01 03 fe ff 00>。可以看出是求256的餘數,而且不是四捨五入完全是取整    var buf1 = new Buffer([1.2,3.7,254,255,256]);    console.log(buf1);    //第三種:字串初始化並帶編碼,預設utf8    var buf2 = new Buffer(‘中國人‘);    //輸出:中國人    console.log(buf2.toString());    //下面將會輸出亂碼    buf2 = new Buffer(‘中國人‘,‘ascii‘);    console.log(buf2.toString());    //下面將會輸出: 9 e4b8ade59bbde4baba    var buf3 = new Buffer(‘中國人‘);    console.log(buf3.length);    console.log(buf3.toString(‘hex‘));    //上面的不同編碼對象的length是不同的,這個需要特別注意以下可以自己實驗下        //還有一個建立Buffer對象的slice,不過這個我基本沒用過,表示截取字串建立buffer    var buf4 = new Buffer(‘中國人‘);    var buf5 = buf4.slice();    //輸出:中國人    console.log(buf5.toString());    //輸出:國    buf5 = buf4.slice(3,6);

 

這次的筆記先到這裡,接下來繼續!
   

Node.js API學習筆記(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.