Node.js rest api,具有 json 和 bigint 属性

Node.js rest api with json and bigint properties

本文关键字:json bigint 属性 具有 js rest api Node      更新时间:2023-09-26

我对node很陌生.js我正在一个rest api中工作,我遇到了一个烦人的问题,我只是无法理解。

这就是问题所在:API 通过 POST 接收一个 json 对象。在这个 json 对象中,有一些属性是 bigint。让我给你一个这些对象的例子:

{
  "items": [
    {
      "appid": 730,
      "classid": "2222",
      "id": 99,
      "instanceid": "instanceID",
      "market_name": "Market name"
    },
    {
      "appid": 730,
      "classid": "2222",
      "id": 99,
      "instanceid": "instanceID",
      "market_name": "Market name"
    }
  ],
  "message": "Mensagem de teste",
  "user": 76561197960275584
}

在服务器端,用户属性返回76561197960275580。这是一个JS舍入问题,我试图使用许多包(bignumber.js,json-bigint等(来解决它,总共有5个解决方案,但没有一个对我有用。我只是不能使用它们,因为当 json 对象命中服务器时,它的 int 属性已经四舍五入。让我在这里放一段我的节点代码。

var express = require('express');
var bodyParser = require('body-parser');
var api = express();
api.use(bodyParser.urlencoded({ extended: false }));
api.use(bodyParser.json());
api.post('/import', function importEndPoint(req, res) {
    console.log('req.body.user=' + req.body.user);
});

当我控制台.log(req.body(时,值已经四舍五入。

正如我所说,我已经尝试了许多库来解决。我已经阅读了很多像我这样的问题的答案,但它仍然不起作用。我确定这是我错过的新手,但我只是无法意识到它是什么。

你能帮帮我吗?API 使用快速 4,我无法更改 json 对象以发送带有字符串的值。

提前感谢任何帮助。

最简单的解决方案是制作这个字段字符串,然后自己解析它,否则你必须破解身体解析器,并改变转换这个字段的方式。