当我发出一个获取请求时,我得到了一个500错误,但是当我只是返回一个值数组时,一切都很顺利,请告诉我。
我的server.js文件:
const express = require('express');
const cors = require("cors");
const CoinGecko = require("coingecko-api")
const app = express();
const CoinGeckoClient = new CoinGecko();
app.use(cors())
app.get('/coins', (req, res) => {
await axios.get<ICoin[]>(`https://api.coingecko.com/api/v3/coins/markets?`, {params: {
vs_currency: "usd",
per_page: 100,
page: 1,
}})
.then((response) => {
console.log(response);
res.json(response.data);
}).catch((error) => {
console.log(error);
})
})
app.listen(5000, () => {
console.log('Server listening on port 5000');
});
我的获取请求:
export default class CoinsService {
static async getAll(page ) {
let response: ICoin[] = []
await axios.get('/coins').then(data => console.log(data)
)
}
}
我尝试输出确切的错误,但得到相同的消息:enter image description hereenter image description here
2条答案
按热度按时间niwlg2el1#
1.正如@Vahid Alimohamadi评论中所说,如果您使用promise,则不需要
await
1.最可能的错误来自于这一行:
此处您预期
Response
类型为ICoin[]
,但可能不是,请将其替换为如果错误消失,则说明您已了解原因。
但这仅用于调试,请记住:
不建议使用
any
类型rdlzhqv92#
我解决了这个问题,是我的粗心。
我以前
替换这个选项,我得到了数据。
我想知道为什么我不能使用第一个选项?