为什么此axios.get请求不起作用>?

时间:2020-06-24 18:56:41

标签: javascript json express axios

我目前正在做Colt Steele的Web Developer训练营,并遇到了这个问题...

在此特定教程中,我们使用axios,因为“请求”已停止使用,因此我尝试与此同时进行。

我想要做的是为“ / results”页面设置一个Get路由,在这里我想从OMDB电影数据库中提取信息,而现在,当我进入该URL时,仅显示JSON文件即可。

我敢肯定有一个明显的解决方案,但是经过数小时的搜索后,我似乎无法弄清它。

这是我的代码;

const express = require('express');
const app = express();
const axios = require('axios').default;


app.listen(3000, () => {
    console.log('Im listening');
});

app.get('/results', (req, res) => {
    axios.get('http://www.omdbapi.com/?t=california&apikey=thewdb')
        .then((response) => {
            res.send(response);
        }).catch((err) => {
            console.log('This isnt right');
        })

});

如您所见,我也在使用express,一切都已正确安装。实际上,当我这样执行console.log(response)时:

axios.get('http://www.omdbapi.com/?t=california&apikey=thewdb')
        .then((response) => {
            console.log(response);
        }).catch((err) => {
            console.log('This isnt right');
        })

它可以正常工作,我可以在控制台中看到API JSON,这使我认为在promise中使用res.send(response)存在问题。

任何帮助将不胜感激。抱歉,如果我错过任何信息,对此还是很新的...

1 个答案:

答案 0 :(得分:1)

要获取OMDb请求的响应数据,请使用data属性:

app.get('/', function (req, res, next) {
    axios.get('http://www.omdbapi.com/?t=california&apikey=thewdb')
        .then(result => res.send(result.data))
        .catch(err => res.send(err));
});

有关更多信息,请参见Axios's Response Schema documentation