Nodejs 雜記

畫船聽雨發表於2018-06-15

Nodejs 雜記

最近被趕鴨子上架,強行要求寫個nodejs介面,作為一名來JavaScript都不的選手,一臉懵逼。語法障礙已成為第一大障礙,把這兩天用到的函式,記錄一下省的下次還得再百度。
主要包含以下幾個方面:

  • 如何去除字串中最後面的空格
  • 如何去除字串中的雙引號
  • nodejs中JSON字串與物件轉換
  • 如何合併buffer

1. 刪除字串中最後面的空格

通過使用trim()函式可以實現去除字串最後的空格,語法與JavaScript中相同。

customerid = customerid.toString().trim();//去掉編號後面的空格

2. 去除字串中所有的雙引號

通過使用replace()方法,第一個引數代表要取代的內容,第二個引數代表替換為什麼。

sendData = sendData.replace(/\"/g, "");//去掉所有的雙引號

3. nodejs中JSON字串與物件轉換

3.1 將JSON物件轉換為JSON型別的字串。

使用JSON.stringify()可以將JSON物件轉換為JSON型別的字串。

result = {};
var length = parseInt(data.substring(pos, pos+4));//獲取交易長度
result.length = length;
pos += 4;
var dealtype = data.substring(pos, pos+4);//獲取交易型別
result.dealtype = dealtype;
pos += 4;
var getjson = JSON.stringify(result);

3.2 將JSON型別的字串轉換為JSON物件

使用JSON.parse(),可以將JSON型別的字串轉換為JSON物件。

result = {};
var length = parseInt(data.substring(pos, pos+4));//獲取交易長度
result.length = length;
pos += 4;
var dealtype = data.substring(pos, pos+4);//獲取交易型別
result.dealtype = dealtype;
pos += 4;
var getjson = JSON.stringify(result);
var getjsonstring = JSON.parse(getjson);

4. 合併buffer

nodejs官方文件中提供了方法Buffer.concat(list[, totalLength])

1. list 要合併的 Buffer 或 Uint8Array 例項的陣列
2. totalLength 合併時 list 中 Buffer 例項的總長度
3. 返回: <Buffer>

返回一個合併了 list 中所有 Buffer 例項的新建的 Buffer 。
如果 list 中沒有元素、或 totalLength 為 0 ,則返回一個新建的長度為 0 的 Buffer 。
如果沒有提供 totalLength ,則從 list 中的 Buffer 例項計算得到。 為了計算 totalLength 會導致需要執行額外的迴圈,所以提供明確的長度會執行更快。
如果提供了 totalLength,totalLength 必須是一個正整數。如果從 list 中計算得到的 Buffer 長度超過了 totalLength,則合併的結果將會被截斷為 totalLength 的長度。

const buf1 = Buffer.alloc(10);
const buf2 = Buffer.alloc(14);
const buf3 = Buffer.alloc(18);
const totalLength = buf1.length + buf2.length + buf3.length;

// 輸出: 42
console.log(totalLength);

const bufA = Buffer.concat([buf1, buf2, buf3], totalLength);

// 輸出: <Buffer 00 00 00 00 ...>
console.log(bufA);

// 輸出: 42
console.log(bufA.length);

5.0小記

Nodejs還是非常強大的一種程式語言,語法跟JavaScript很像,而且功能強大,好多東西都不用自己手寫,很方便,初步接觸印象良好。