2015-02-26 3 views
0

При новом подключении я иногда получаю ошибку TypeError: Cannot read property 'country' of null и в основном работает исправно!GEO location TypeError: Невозможно прочитать свойство 'country' of null

Как избежать этого при его нулевом значении, чтобы я не получил ошибку?

линия Ошибка var location = geo.country;

 var ip = socket.ip //socket.ip; 
     var geo = geoip.lookup(ip);  
     var location = geo.country; 
     console.log(location); 

ответ

1

Используйте условное:

var location = geo ? geo.country : "unknown"; 

Условный оператор подробно объясняется здесь:

Question Mark in JavaScript

+0

не могли бы вы объяснить мне, что это делает (я новичок) – Inna

+0

Я добавил ссылку на вопрос, который объясняет это. – Barmar

+0

@Inna Я использую 127.0.0.1, например. Этот IP-адрес никоим образом не связан с страной, поэтому ответ Barmar'a просто присваивает стране «неизвестный» IP-адрес (например, 127.0.0.1). Очень хорошо. –

0

Это означает, что вы получаете null.country которые acco rding к вашему коду, означает, что geo возвращается null. Это также означает, что ваш geoip не работает. Сделайте console.log(), чтобы проверить, возвращает ли ваш geoip значение или null.

Смежные вопросы