Node / Express,如何配置bodyParser仅在某些路由上使用raw

时间:2018-06-18 07:39:59

标签: node.js express long-integer

我不太确定我是否正确接近这个,但我的问题是,我通常在我的API端点接收json数据,然后我从json req.body数据创建一个模型实例......我正在使用MEAN堆栈..

我现在遇到的问题是,我的模型的一个字段是具有18个位置的mongoose-long数据类型。但是,bodyParser会解析数字并对数字的las 3位置进行舍入。我将它用于_id字段,因此我收到了重复的密钥错误。

我通过Python手动构建并发送数据进行测试,我使用_ast_lib_eval(document)从我构造的json文档中去除所有字符串引号。因此,不知怎的,json bodyParser正在获取身体并获取数字,但切断(或舍入)数字字段,因为我猜,它本身不支持这么长的数字...我可以使用另一个bodyParser某些路线可能..但我不知道如何配置它。

现在最好的方法是什么?我是否必须使用另一个解析器,因此将我的数据作为纯文本或原始数据发送给所有api端点?这意味着我必须重做一切,以便它适合解析器,对吧?通常的格式是json ....

或者我可以以某种方式从req.body获取“原始”数据,然后再从bodysarser中解析出来?这将是手动获取正确数字的最佳方式..但我不知道是否有方法可以做到这一点......

1 个答案:

答案 0 :(得分:3)

根据规范,您可以在所有端点上使用特定的自定义bodyparser

question = {
    category: "Fizyka",
    id: "-LF2OGgGXD-xPpSa64CX",
    level: "Liceum",
    photoURL: "https://firebasestorage.googleapis.com/v0/b/uczsieapp.appspot.com/o/images%2Faf941460-05e8-4943-8ea0-b24359e22cdf?alt=media&token=7141bf45-55c4-467c-a533-a268d95fe6cf",
    pointAmount: 32,
    pointBoost: 0,​
}

Issue on gh