Я установил простой сервис Node / Express, который создает новые закладки в базе данных.
В моей схеме закладок одно из полей, url, имеет проверки. Когда вы пытаетесь создать новую закладку без правильных проверок, она выдает ошибку и сообщение.
например. если вы не предоставите URL для запроса, он выдаст сообщение Please provide a url.
Маршрут запроса POST для создания новой закладки:
app.post(
'/api/bookmarks',
(req, res) => {
const { url, tags } = req.body;
const bookmark = new Bookmark({
url,
tags
});
bookmark.save()
.then(res => {
res.send(result)
})
.catch(error => {
console.log("err:", error);
res.status(400).send(error)
});
}
);
Как выглядит моя схема закладок:
const bookmarkSchema = new Schema({
url: {
type: String,
required: [true, "Please provide a URL."],
match: [urlRegex, "Your URL is invalid. Please make sure to add www."]
},
tags: [String]
});
Когда я выполняю вызов API на клиентском интерфейсе (например, через React), я могу перехватить сообщение об ошибке и последующее сообщение (Please provide a URL.
), но, как вы можете видеть, мне нужно вызвать err.response.data.errors.url.message
, который кажется очень многословным и многословным.
axios.post('http://localhost:5000/api/bookmarks', { tags: ["banana", "orange"] })
.then(result => console.log('Result:', result.data))
.catch(err => console.log('Error:', err.response.data.errors.url.message));
О чем я думаю - есть ли лучший способ визуализировать ошибки здесь? Будет ли лучше обрабатывать ошибки на стороне клиента?
Я довольно новичок в обработке ошибок, поэтому хотел бы знать, что считается лучшей практикой.
Спасибо!