#node.js #express #heroku #http-error
Вопрос:
Я создаю API с помощью Express, который возвращает ответы JSON как для успешных запросов, так и для сбоев. Например, ошибка из-за неверного ввода может выглядеть примерно так
app.post('/api/new-post', (req, res) => {
const { title, body } = req.body;
if (!title) {
res.status(400).json({ error: 'POST_TITLE_REQUIRED' });
return;
else if (!body) {
res.status(400).json({ error: 'POST_BODY_REQUIRED' });
return;
}
// no error, perform the action and return the result
res.json(createPost(title, body);
}
Это прекрасно работает при локальном запуске. При передаче неверных входных данных сервер возвращает ошибку с ответом JSON. Однако, когда я развертываюсь в Heroku, практически любой ответ с кодом состояния ошибки заменяется общей страницей ошибок HTML.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>400</title>
<meta http-equiv="Cache-Control" content="no-cache" />
</head>
<body>
<p>
Bad Request
</p>
</body>
</html>
Есть ли какой-нибудь способ отключить это и сохранить исходные ответы?
Комментарии:
1. Давайте проверим devcenter.heroku.com/articles/…