我使用节点js中的binaryjs模块从客户端传入Buffer。此缓冲区包含一个管道分隔的字符串,我最终在服务器上进行解析。
在客户端,我将String转换为Uint8Array。 My String看起来像这样:
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以将第二个和第三个值转换为整数时,会出现问题:
var intVal1 = parseInt(thisArray[1]); // returns NaN
var intVal2 = parseInt(thisArray[2]); // returns NaN
console.log(typeof thisArray[1]); // returns string
在客户端运行相同的代码可以正确地将字符串转换为int。不确定我在这里缺少什么?