ExpressJS: пользовательский модуль ошибок не распознает эту ошибку

Я запускаю бэкэнд Express.JS, и он настроен на возврат ошибки 422 с настраиваемым сообщением, если пользователь пытается зарегистрироваться с помощью электронной почты, которая уже используется, например:

const existingUser = await User.findOne({ email: email });
    if (existingUser) {
        return res.status(422).send({ error: 'Email is already in use' });
    }

Однако ответ, который я вижу на переднем конце, таков:

"response":{"data":"The custom error module does not recognize this error.","status":422,"statusText":"Unprocessable Entity"

Что-то, видимо, меняет ошибку на пути к интерфейсу.

Я запускаю это локально прямо сейчас для разработки, но производство развернуто в Azure, поэтому у меня есть файл Web.config и файл iisnode.yml. Я добавил этот код к первому, чтобы убедиться, что он не вызывает проблемы:

<system.webServer>
  <httpErrors existingResponse="PassThrough">
  </httpErrors>
</system.webServer>

Как мне решить эту проблему?


person Boris K    schedule 20.11.2017    source источник
comment
Связана ли проблема с expressjs и как? Сообщение, которое вы получаете, похоже, исходит от какого-то IIS. Вы уже читали это: stackoverflow.com/questions/12908764/   -  person p-a-o-l-o    schedule 20.11.2017
comment
Да, прочитал и добавил предложенный код в Web.config. Проблема не устранена.   -  person Boris K    schedule 20.11.2017
comment
Извините за беспокойство, но еще раз спрошу: как проблема связана с экспрессом?   -  person p-a-o-l-o    schedule 20.11.2017
comment
Я использую Express для своего бэкэнда и оттуда возвращаю ошибки. Я не знаю, почему ошибки трансформируются на пути к внешнему интерфейсу.   -  person Boris K    schedule 20.11.2017


Ответы (2)


Не уверен, но следующее должно работать.

return res.status(422).send('Email is already in use');
person Vipin Kumar    schedule 20.11.2017
comment
Нет, то же самое. - person Boris K; 20.11.2017

У меня это сработало после установки <httpErrors>, как показано ниже:

введите здесь описание изображения

Вывод браузера:

введите здесь описание изображения

person Aaron Chen    schedule 20.11.2017
comment
Да, я начал с этой строки, похоже, это не имеет значения. - person Boris K; 20.11.2017
comment
Попробуйте перезапустить службу приложения и очистить кеш браузера. - person Aaron Chen; 20.11.2017