DevGang
Авторизоваться

Как вернуть коды состояния в Express

Для любого разработчика, работающего с API и Express, важно понимать, как вернуть правильные коды состояния HTTP. Коды состояния HTTP — это способ сервера передать статус запроса клиента — был ли он успешным, вызвал ошибку сервера или что-то среднее между ними.

Многие опытные разработчики, вероятно, сталкивались с ситуацией, когда они используют API, а запрос завершается ошибкой, но они понятия не имеют, почему. Если бы API возвращал правильный код состояния вместе с коротким сообщением, это могло бы сэкономить разработчикам часы времени на отладку.

Чтобы сделать обработку ошибок менее болезненным, писать чистый код и делать код централизованным, изучите наше "Руководство по обработке ошибок".

В этой короткой статье мы подробно рассмотрим важность этих кодов состояния и то, как их можно использовать в Express.js, быстром, бескомпромиссном и минималистичном веб-фреймворке для Node.js.

Начнем с самого простого способа вернуть код состояния в Express.js. Это делается с помощью функции res.status(), где res — это объект ответа, передаваемый вашему обработчику маршрута callback.

app.get('/api/users', (req, res) => {
    res.status(200).json({ message: "Success!" });
});

В приведенном выше примере мы отправляем код состояния 200, что означает, что запрос был выполнен успешно.

Однако Express.js предлагает более семантический способ отправки многих распространенных кодов состояния HTTP. Например, вы можете использовать res.sendStatus() вместо res.status().send() для отправки кодов состояния с кратким сообщением.

app.get('/api/users', (req, res) => {
    res.sendStatus(200); // equivalent to res.status(200).send('OK')
});
Примечание: помните, что коды состояния HTTP предназначены не только для успешных запросов. Если вы возвращаете статус ошибки, например 400 для «неверного запроса» или 404 для «не найдено», полезно предоставить дополнительную информацию о том, что пошло не так.

При работе с ошибками мы можем использовать метод res.status() в сочетании с .json() для предоставления подробного сообщения об ошибке.

app.get('/api/users', (req, res) => {
    res.status(404).json({ error: "User not found!" });
});

Таким образом, клиент получит как код состояния ошибки, так и сообщение с подробным описанием проблемы.

Но как нам обрабатывать непредвиденные ошибки, возникающие во время выполнения нашего кода? Для этого Express.js предлагает функции промежуточного программного обеспечения для обработки ошибок.

Функции промежуточного ПО — это функции, которые имеют доступ к объекту запроса (req), объекту ответа (res) и next функции промежуточного ПО в цикле запроса-ответа приложения. Они могут выполнять любой код, вносить изменения в объекты запроса и ответа, завершать цикл запрос-ответ и вызывать следующую промежуточную функцию в стеке.

Вот базовый пример функции промежуточного программного обеспечения для обработки ошибок:

app.use((err, req, res, next) => {
    console.error(err.stack);
    res.status(500).send('Something broke!');
});

В этом примере, если в вашем приложении возникает ошибка, она будет обнаружена этой промежуточной функцией. Функция записывает трассировку стека ошибок и отправляет клиенту код состояния 500, указывающий на внутреннюю ошибку сервера.

Возврат кодов состояния HTTP в Express.js может осуществляться несколькими способами. Независимо от того, используется ли это с помощью res.status(), res.sendStatus() или в сочетании с функциями промежуточного программного обеспечения для обработки ошибок, каждый метод играет роль в передаче состояния клиентских запросов. Понимание этих различных методов поможет нам писать более надежный код, а также удобные для пользователя API.

Потратив время на возврат правильных кодов состояния, вы гарантируете, что ваше приложение эффективно взаимодействует с клиентами, будь то браузеры, сторонние приложения или другие серверы.

В дополнение мы предоставляем вам для изучения статью "Параметры запроса с Express".

Источник:

#JavaScript #NodeJS #Express
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу