邮递员显示的结果与ExpressJS发送的结果不同

时间:2019-12-09 06:54:53

标签: node.js express postman

好吧,这是一个不寻常的问题,我不确定应该在哪里放置stackoverflow的哪个位置,所以如果有人可以告诉我,我很乐意在该位置提问。

问题

因此,我正在开发ExpressJS后端,并在邮递员中对其进行了测试。 以下代码是我感兴趣的。

response.status(200);
result.message = "Please Fill Registration Details";
result.data = {
    code: 010101
};
result.status = "Successful";

这是一个简单的代码,这里没有问题,但是当我签入邮递员时,输出为:

{
"message": "Please Fill Registration Details",
"data": {
    "code": 4161
},
"status": "Successful"
}

enter image description here

  

代码010101如何更改为4161?

我首先认为邮递员考虑将010101转换为二进制并将其转换为十进制,但是十进制值为21,十六进制值为15。

那么,这是怎么回事?有谁之前经历过这个吗 ? 我仍然需要在生产环境和实际设备中检查此API。 我将更新我的发现。

3 个答案:

答案 0 :(得分:3)

它将010101视为八进制数字,这就是JavaScript的工作方式。之所以认为它是八进制数字,是因为它没有被引号引起来。

以下是JavaScript的示例:

console.log(010101);  //4161

因此,要修正您的代码,请用引号将您的值引起来:

result.data = {
    code: "010101"
};

答案 1 :(得分:1)

JavaScript会将以0开头的数字理解为八进制(以8为底)。十进制的10101的十进制值为4161。如果要以前导零传递代码,请将其作为字符串“ 010101”传递。

答案 2 :(得分:0)

您选择了邮递员中的JSON格式...

除了JS不遵循类型规则之外,

让var1 = 010101; let var2 = Number(010101);