IFTTT 휴게소에 json 데이터를 보내기 위해 node-fetch를 사용하고 있습니다. 데이터가 엔드 포인트로 성공적으로 전송되었지만 NodeJS 콘솔에서 오류가 발생합니다. 보시다시피 undefined를 반환하고 잘못된 json 응답 본문이 있다고 말합니다. 시체를 살펴 보니 괜찮아 보입니다.
무엇이 문제입니까?
async function checkTemperatureRange() {
try {
const temperatureSettings = await getTemperatureSetting();
const currentTemperature = await getCurrentTemperature();
if (currentTemperature < temperatureSettings.min_temp || currentTemperature > temperatureSettings.max_temp) {
console.log('Temp NOT in range!');
const body = { value1: currentTemperature };
fetch('https://maker.ifttt.com/trigger/temp_reading/with/key/abc123', {
method: 'post',
body: JSON.stringify(body),
headers: { 'Content-Type': 'application/json' },
})
.then(function (res) {
res.json()
})
.then(function (json) {
console.log(json)
})
.catch(function (err) {
console.log('node-fetch error: ', err)
});
}
else {
console.log('Temp in range :)');
}
} catch(error) {
console.error(error);
}
}
오류
undefined
(node:7488) UnhandledPromiseRejectionWarning: FetchError: invalid json response body at https://maker.ifttt.com/trigger/temp_reading/with/key/abc123 reason: Unexpected token C in JSON at position 0
at C:\Users\leke\dev\code-training-camp-demo\node_modules\node-fetch\lib\index.js:272:32
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
(node:7488) UnhandledPromiseRejectionWarning: Unhandled promise rejection.
This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:7488) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
편집하다
console.log(res)
내가 얻는 다면
Response {
size: 0,
timeout: 0,
[Symbol(Body internals)]:
{ body:
PassThrough {
_readableState: [Object],
readable: true,
domain: null,
_events: [Object],
_eventsCount: 3,
_maxListeners: undefined,
_writableState: [Object],
writable: false,
allowHalfOpen: true,
_transformState: [Object] },
disturbed: false,
error: null },
[Symbol(Response internals)]:
{ url: 'https://maker.ifttt.com/trigger/temp_reading/with/key/abc123',
status: 400,
statusText: 'Bad Request',
headers: Headers { [Symbol(map)]: [Object] },
counter: 0 } }
그래서 그것은 나쁜 요청과 관련이 있습니까?
죄송합니다.을 잊어 버렸고 return
IFTTT도 text()
json이 아니라를 반환합니다 .
.then(function (res) {
return res.text();
})
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다