Невозможно получить доступ к JSON API и ошибка ссылки - PullRequest
0 голосов
/ 05 марта 2019

Я получаю ошибку ссылки при попытке получить доступ к следующему API Формула 1 API

Я получаю сообщение об ошибке: я не могу получить доступ к MRData. Я использовал JSON Editor, и я уверен, что у меня правильный путь. Ниже находится почтовый запрос.

app.get('/about', function(req, res){
res.render('about', {standings: null});
});

app.post('/about', function(req, res){
var year = req.body.Year;

var url = `http://ergast.com/api/f1/${year}/driverstandings.json?callback=`
request(url, function (err, response, body){
  if(err){
    res.render('about', {standings: null, error: 'Error, please try again'});
  } else {
    let standings = JSON.parse(body)
    if(standings.MRData === undefined) {
      res.render('about', {standings: null, error: 'Error, please try again'});
    } else {
      let firstName = MRData.StandingsTable.StandingsLists[0].DriverStandings[0].Driver.givenName
      let standingsText = `The winner of the formula 1 championship in the year ${MRData.StandingsTable.season} is ${firstName}`;
      res.render('about', {standings: standingsText, error: null});
    }
   }

 });

 });

Любая помощь будет оценена. Спасибо, что заглянули в это.

1 Ответ

0 голосов
/ 06 марта 2019

Есть 1 синтаксическая ошибка и 1 дополнительный сценарий, который я могу придумать.

Синтаксическая ошибка:

В части else вы непосредственно ссылаетесь на MRData, тогда как вы должны ссылаться на нее standings.MRData. Оба для firstName и standingsText

let firstName = standings.MRData.StandingsTable.StandingsLists[0].DriverStandings[0].Driver.givenName
let standingsText = `The winner of the formula 1 championship in the year ${standings.MRData.StandingsTable.season} is ${firstName}`;

Другой сценарий является req.body.Year, возможно, пустым, и вы используете его, так что запись в журнал URL-адреса консоли может привести к решению.

...