Хотелось бы узнать лучший способ устранения ошибок в ответе - запрос.
У меня есть этот маршрут, который получает запрос:
app.get('/getInfo', function (req, res, next) {
let obj = {}
try {
obj = {
...
date: lastUpdatedDate('./utils/appVersion.js'),
...
}
res.status(200).send(obj)
} catch (error) {
console.log(error.message)
res.send({error: "The data wasn't load"})
}
})
И эта функция, где сделан запрос
getInfo () {
axios.get(process.env.REACT_APP_HOST + '/getInfo')
.then(resp => {
this.appInfoHandler(resp.data)
})
.catch(function (error) {
console.log(error)
})
}
Как лучше всего справиться с ошибкой, если она возникает на стороне сервера?
Предположим, что в этом блоке кода каталог не существует: lastUpdatedDate('./directoreyDoesntExists/appVersion.js'),
Итак, мой код переходит в блок catch
.
Должен ли я отправить сообщение об ошибке следующим образом:
res.send({error: "The data wasn't load"})
Должен ли я установить такой статус?
res.status(500).send({error: "The data wasn't load"})
Или я должен установить статус с другим кодом статуса?
Исходя из этого, как лучше всего справиться с этим в моем методе внешнего интерфейса getInfo()
, чтобы получить сообщение об ошибке и отобразить сообщение об ошибке в веб-интерфейсе?
Должен ли я сделать if else
внутри блока .then
, как это?
getInfo () {
axios.get(process.env.REACT_APP_HOST + '/getInfo')
.then(resp => {
if(resp.status === 200){
this.appInfoHandler(resp.data)
}else if (resp.status === 400){
//print error message on web interface
}else if (resp.status === 500){
//print error message on web interface
})
.catch(function (error) {
console.log(error)
})
Или я должен разобраться с этой ошибкой прямо в блоке catch
, как это
getInfo () {
axios.get(process.env.REACT_APP_HOST + '/getInfo')
.then(resp => {
this.appInfoHandler(resp.data)
})
.catch(function (error) {
//print error message on web interface
})
}