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

Javascript 具有json和bigint属性的Node.js rest api,javascript,json,node.js,rest,Javascript,Json,Node.js,Rest,我是node.js的新手,我在一个rest api中工作,我遇到了一个恼人的问题,我就是想不通 这就是问题所在:api通过POST接收json对象。在这个json对象中,有一些属性是bigint。让我给你举一个这些对象的例子: { "items": [ { "appid": 730, "classid": "2222", "id": 99, "instanceid": "instanceID", "market_name":

我是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);
});
当我输入console.log(req.body)时,值已经四舍五入

正如我所说的,我已经尝试了许多LIB来解决这个问题。我已经读了很多关于像我这样的问题的答案,但仍然不起作用。我肯定这是一个新手的东西,我错过了,但我只是不知道它是什么

你能帮帮我吗?api使用Express4,我无法更改json对象以使用字符串发送这些值


提前感谢您的帮助。

最简单的解决方案是将此字段字符串设置为您自己的字符串,然后对其进行解析,否则您必须破解正文解析器,并更改转换此字段的方式

最好是自己缓冲发布的数据,将bigint转换为字符串,然后使用
JSON.parse()
解析它。这意味着您可能必须自己编写中间件。问题作者已经声明这不是一个选项。谢谢。我会读到这方面的内容。在观看视频时,我发现有些人更喜欢另一个中间件而不是主体解析器。我将搜索这些选项。@Freyday抱歉,我看不到我的答案,问题作者所说的不是选项。