Korzystanie z prostego Zauważyłem, że czasami prosty TypeError
może spowodować awarię całej aplikacji węzła. Biorąc jeden z przykładów:Zapobieganie awarii aplikacji Nero TypeError
request('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body) // Print the google web page.
}
})
Teraz weź hipotetyczna sytuacja, w której Google nie odpowiada, a następnie połączenie prostu zawiesza się czasy (w przypadku Google!). Ten kod po prostu powoduje awarię aplikacji węzła jako response
jest niezdefiniowany, więc response.statusCode
nie można odczytać. Pęka to do pętli zdarzeń i powoduje awarię z błędem:
TypeError: Cannot read property 'statusCode' of undefined
Jaki jest najprostszy sposób, aby temu zapobiec? Mógłbym dodać czek o wartości error
przed sprawdzeniem dla statusCode
na przykład:
request('http://www.google.com', function (error, response, body) {
if (!error) {
if (response.statusCode == 200) {
// do stuff
}
}
})
Ale wolałbym nie dodawać niepotrzebnych linii do aplikacji, jeśli to możliwe. Może brakuje tu czegoś oczywistego! Wszelkie wskazówki są bardzo cenne. Dzięki.