У меня есть приложение nuxt с express и mySQL.
Проблема : я не могу отобразить пользовательское сообщение об ошибке express res.send () на vue side
Давайте представим, что я хочу отобразить информацию об одном пользователе.
Вот мой внутренний код:
// Find a single User with a userId
exports.findOne = (req, res) => {
User.findById(req.params.userId, (err, data) => {
if (err) {
if (err.kind === 'not_found') {
res.status(404).send({
message: `Not found User with id ${req.params.userId}.`
})
} else {
res.status(500).send({
message: 'Error retrieving User with id ' + req.params.userId
})
}
} else { res.send(data) }
})
}
А вот Vue part
<script>
import axios from 'axios'
import appNavbar from '~/components/appNavbar.vue'
export default {
components: {
appNavbar
},
data () {
return {
userId: '',
userData: '',
errorMsg: ''
}
},
methods: {
fetchUser (evt) {
evt.preventDefault()
return axios.get('/api/users/' + this.userId)
.then((res) => {
this.userData = res.data
})
.catch((err) => {
this.errorMsg = err.toJSON()
})
}
}
}
</script>
Когда я даю идентификатор несуществующего пользователя, я хочу иметь возможность получить собственное сообщение об ошибке, написанное сзади, и отобразить его спереди
НО я получаю только это JSON
{ "message": "Request failed with status code 404", "name": "Error" }
У кого-нибудь есть подсказка? Спасибо!