【问题标题】:JS/NodeJS JSON Buffer to StringJS/NodeJS JSON 缓冲区到字符串
【发布时间】:2020-06-13 20:54:50
【问题描述】:

我真的很难将 Buffer 转换为字符串。

对于这个代码

let results = await generateRandomNumber(seed);
console.log(results); 
    res.status(200).json({
    "status": 200,
    "number": results
});

}

我收到 console.log(results);

   {
  result: <Buffer ee 62 e7 6f c7 4b 7f 57 86 20 bd ba 52 74 4a fc 66 89 70 bb>
}

响应 JSON 是:

{"status":200,"number":{"result":{"type":"Buffer","data":[238,98,231,111,199,75,127,87,134,32,189,186,82,116,74,252,102,137,112,187]}}}

我想要实现的只是数字实际上变成了数字而不是缓冲区。

【问题讨论】:

    标签: javascript node.js string buffer


    【解决方案1】:

    文档中有节点buffer.read < primitive type >函数可供使用。

    我们以buf.readBigInt64BE([offset])为例

    const buf = Buffer.from([0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff]);
    console.log(buf.readBigUInt64BE(0));
    

    你的缓冲区有 20 个十六进制值,如果你想把它转换成一个数字,我不确定会有一个类型来保存这样的东西。

    【讨论】:

      【解决方案2】:

      你试过了吗?

      results.toString('utf8')

      所以你可以访问你的 json.data f

      【讨论】:

      • 这只是返回 [object Object]
      【解决方案3】:

      你可以这样试试

      let results = await generateRandomNumber(seed);
      var bufferData = Buffer.from(results);
      var resultString = bufferData.toString('utf8');
      
      console.log(results); 
          res.status(200).json({
          "status": 200,
          "number": resultString
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多