JSON возвращает нулевое значение объекта, не может прочитать его свойство - PullRequest
0 голосов
/ 25 апреля 2020

Я собираю JSON ответ от внешнего API с Express, и значения некоторых элементов мне возвращаются как нулевые. Когда я пытаюсь использовать эти значения (вместе с другими) позже, я получаю ошибку TypeError: Cannot read property 'avatar' of null. Я попытался перезаписать его, но он все равно возвращает ноль. Могу ли я как-то пропустить или перезаписать значение этого указанного c параметра, когда оно равно "null"? Вот часть моего кода, с которой у меня проблема:

  var clearbit = require('clearbit')(apikey);
  clearbit.Enrichment.find({email: email, stream: true})
  .then(function (response) {
    var person  = response.person;
    var company = response.company;
    res.render('single-user', { 
        // any of below can be equal to null depending on the email that is being checked
        avatar: person.avatar,
        name: person.name.fullName,
        email: person.email,
        //other properties
     });
  })

1 Ответ

0 голосов
/ 25 апреля 2020

Вы можете использовать недавно введенную опциональную цепочку (?.), Чтобы решить эту проблему. Ваш код будет выглядеть так:

var clearbit = require('clearbit')(apikey);
clearbit.Enrichment.find({email: email, stream: true})
.then(function (response) {
  var person  = response.person;
  var company = response.company;
  res.render('single-user', { 
      avatar: person?.avatar,
      name: person?.name?.fullName,
      email: person?.email,
     // Similarly for all properties
   });
})

Вот ссылка для справки: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining

Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...