所以我移动了一个不可重用的获取请求代码片段到我的API:
let response = await fetch(visitURL, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + userJWT
},
body: JSON.stringify(endingVisit)
});
if (response.ok) {
let {visitId, createdAt} = await response.json();
const viewVisitDto = new ViewVisitDto(`${visitId}${createdAt}${visitorId}${doctorId}${oldPatientId}`);
return viewVisitDto;
} else {
throw new Error("deactivated!")
}
我能走到这一步:
axios.post(visitURL, {
headers,
body: JSON.stringify(visit)
}).then((response) => {
console.log(response);
}).catch((error) => {
console.log(error);
})
但不能准确地从响应中给出visitId
和createdAt
,我不能使用response.ok
和response.json()
。本质上,我需要拉出visitId
和createdAt
,它们应该在响应中返回。
我也尝试过使用node-fetch
库,但是尽管在VS代码中它似乎接受它,TypeScript对它并不满意,即使我安装@types/node-fetch
,甚至当我为它创建类型定义文件时,我的API也不喜欢它。
猜你要找的是什么
// don't know axios, but if it returns a promise await it
const dto = await axios.post(visitURL, {
headers,
body: JSON.stringify(visit)
}).then((response) => {
// parse response
return {resonse.visitId, resonse.createdAt}
}).then(({visitId, createdAt}) => {
// form dto (where are other vals)?
return new ViewVisitDto(`${visitId}${createdAt}${visitorId}${doctorId}${oldPatientId}`);
}).catch((error) => {
console.log(error);
})
然而,你没有提到doctorId和oldPatientId来自哪里…您尝试提供更多信息,包括console.log的输出和周围的代码