PUT API 请求返回 JSON 正文错误
PUT API request returning JSON body error
我试图通过发送放置请求来更新分发列表,当我 运行 这段代码并通过给它一个 JSON 正文在邮递员中对其进行测试时,我在我的 node.js 终端显示 SyntaxError: Unexpected end of JSON input
... 知道我应该更改什么吗?
My PUT API request
app.put("/api/Dls/Add/:groupId" , (req, res) => {
const response = {
success: false
};
if (Authorized.myToken) {
response.success = true;
response.data = {};
var options = {
method: 'PUT',
url: 'https://SomeAPI.com/' + req.params.groupId,
headers:
{
Accept: 'application/json',
Authorization: 'Bearer' + ' ' + Authorized.myToken
},
body: JSON.stringify(req.body)
};
request(options, function (error, response, body){
if (error) {
console.log(error);
return;
}
const data = response.body;
const dls = JSON.parse(data)
return res.json(dls);
});
}
});
JSON body I'm passing through postman to test the API call
{
"groupId": "123456789",
"SomeField1": null,
"SomeField2": "xxxxxxxxx",
"SomeField3": true,
"SomeField4": "xxxxxxxxx",
"SomeField5": "xxxxxxxxx",
"SomeField6": [
"xxxxxxxxx"
],
"SomeField7": "xxxxxxxxx",
"SomeField8": "xxxxxxxxx",
"SomeField9": "xxxxxxxxx",
"SomeField10": "xxxxxxxxx",
"SomeField11": [],
"SomeField12": "xxxxxxxxx",
"SomeField13": null,
"SomeField14": false,
"SomeField15": ["xxxxxxxxx"]
}
欢迎任何反馈!
如果您在此处发布的 JSON 是您通过邮递员传递的真实内容,则它不是有效的 JSON,因为您具有相同的名称属性。当我说有效时,它意味着你在发布到端点后得到这样的东西。
{
"groupId": "123456789",
"SomeField": [
"xxxxxxxxx"
]
}
请求 npm 包也已弃用,因此最好不要使用它并用 Axios 之类的东西替换它。 TBH 我没有在导致您提到的错误的代码中看到任何错误,您可以访问 API 来检查日志吗?也许 https://SomeAPI.com/ 端点出了点问题。
我知道问题出在哪里了,我需要将 .end
添加到 return 语句
例如。 return res.status(200).end()
我试图通过发送放置请求来更新分发列表,当我 运行 这段代码并通过给它一个 JSON 正文在邮递员中对其进行测试时,我在我的 node.js 终端显示 SyntaxError: Unexpected end of JSON input
... 知道我应该更改什么吗?
My PUT API request
app.put("/api/Dls/Add/:groupId" , (req, res) => {
const response = {
success: false
};
if (Authorized.myToken) {
response.success = true;
response.data = {};
var options = {
method: 'PUT',
url: 'https://SomeAPI.com/' + req.params.groupId,
headers:
{
Accept: 'application/json',
Authorization: 'Bearer' + ' ' + Authorized.myToken
},
body: JSON.stringify(req.body)
};
request(options, function (error, response, body){
if (error) {
console.log(error);
return;
}
const data = response.body;
const dls = JSON.parse(data)
return res.json(dls);
});
}
});
JSON body I'm passing through postman to test the API call
{
"groupId": "123456789",
"SomeField1": null,
"SomeField2": "xxxxxxxxx",
"SomeField3": true,
"SomeField4": "xxxxxxxxx",
"SomeField5": "xxxxxxxxx",
"SomeField6": [
"xxxxxxxxx"
],
"SomeField7": "xxxxxxxxx",
"SomeField8": "xxxxxxxxx",
"SomeField9": "xxxxxxxxx",
"SomeField10": "xxxxxxxxx",
"SomeField11": [],
"SomeField12": "xxxxxxxxx",
"SomeField13": null,
"SomeField14": false,
"SomeField15": ["xxxxxxxxx"]
}
欢迎任何反馈!
如果您在此处发布的 JSON 是您通过邮递员传递的真实内容,则它不是有效的 JSON,因为您具有相同的名称属性。当我说有效时,它意味着你在发布到端点后得到这样的东西。
{
"groupId": "123456789",
"SomeField": [
"xxxxxxxxx"
]
}
请求 npm 包也已弃用,因此最好不要使用它并用 Axios 之类的东西替换它。 TBH 我没有在导致您提到的错误的代码中看到任何错误,您可以访问 API 来检查日志吗?也许 https://SomeAPI.com/ 端点出了点问题。
我知道问题出在哪里了,我需要将 .end
添加到 return 语句
例如。 return res.status(200).end()