2

ノードjsのbinaryjsモジュールを使用して、クライアント側からバッファを渡しています。このバッファには、最終的にサーバーで解析するパイプ区切りの文字列が含まれています。

クライアント側では、String を Uint8Array に変換します。私の文字列は次のようになります。

var stringToConvert = 'A_1_22|B_2_33|C_3_44';

この Uint8Array がサーバーに渡されると、Buffer として受信されます。最初に Buffer を配列にチャンクします。

var parts = [];
// ...
// as data is received:
parts.push(data);

すべてのデータをストリーミングしたら、この配列を文字列に変換し、「|」で分割します。

var arrayString = parts.toString().split("|");

これにより、目的の配列出力が得られます。

arrayString = ['A_1_22', 'B_2_33', 'C_3_33'];

次に、この arrayString を繰り返し処理し、「_」で再度分割します。

for(var i = 0; i < arrayString.length; i++)
{
    var thisArray = arrayString[i].split("_");
    // ...

thisArray を反復処理して 2 番目と 3 番目の値を int に変換しようとすると、問題が発生します。

var intVal1 = parseInt(thisArray[1]); // returns NaN
var intVal2 = parseInt(thisArray[2]); // returns NaN
console.log(typeof thisArray[1]); // returns string

クライアント側で同じコードを実行すると、文字列が int に適切に変換されます。ここで何が足りないかわからない?

4

0 に答える 0