由于CORS问题,我想从节点快递服务器内部调用外部REST API。也就是说,我有类似这样的代码,因为它不会返回,因此显然不起作用。
如何进行这项工作并返回外部呼叫的结果?
const server = express();
server.put('/callme',(req,res) => {
axios
('http://weather.com/restapi', 'put', { zip: 10530 })
.then((resp: any) => {
console.log(' success' + resp.data);
})
.catch(function(error: any) {
console.log(error.message);
});
}
答案 0 :(得分:0)
Axios返回一个Promise
,它在.then()
中被解析。为了将响应数据返回给客户端,您需要使用res.send()
将其返回。
const server = express();
server.get('/callme', (req, res) => {
axios
.get('http://weather.com/restapi?zip=10530')
.then((resp: any) => {
res.send(resp.data);
})
.catch(function(error: any) {
console.log(error.message);
});
}
将天气API响应缓存一段时间并为后续请求提供缓存的响应是一个好主意。