我目前正在做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)存在问题。
任何帮助将不胜感激。抱歉,如果我错过任何信息,对此还是很新的...
答案 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。