обработать запрос. js ошибка в приложении узла - PullRequest
0 голосов
/ 06 августа 2020

Я использую запрос на доступ к данным из api. иногда, когда api url не работает, узел выдает ошибку и закрывается со следующей ошибкой

    at ClientRequest.emit (events.js:315:20)     
    at TLSSocket.socketErrorListener (_http_client.js:426:9)    
    at TLSSocket.emit (events.js:315:20)   
    at emitErrorNT (internal/streams/destroy.js:92:8)    
    at processTicksAndRejections (internal/process/task_queues.js:84:21)         
  errno: 'ENOTFOUND',    
  code: 'ENOTFOUND',    
  syscall: 'getaddrinfo',       
  hostname: APIURL    

есть ли способ справиться с этим и предотвратить выход узла? мой код

const JSONdata= ()=>{  
 request({url:API_URL2,json:true},(error,response,body)=>{          
        const data=[]       
        var jsondata=body      
        data.push(jsondata)       
        const data2=JSON.stringify(data)        
        fs.writeFile('sample.txt',data2,(err) => { if(error){console.log(error} })})   

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

Модуль первого запроса устарел запрос устарел , поэтому вы можете попробовать другие пакеты, такие как ax ios. Также при тестировании api и запроса к базе данных попробуйте использовать блок try and catch, а в случае ошибки попытайтесь отобразить соответствующее сообщение об ошибке для пользователя.

try{
//your code
res.json("success")
}
catch(err){
   res.json("Looks like something went wrong")
}
0 голосов
/ 06 августа 2020

Вы можете использовать блоки try / catch, которые будут поддерживать работу вашей программы при выходе из строя определенных функций. Вот ссылка, описывающая, как они работают!

https://www.w3schools.com/js/js_errors.asp

...