при вызове метода post он вводит оператор if, когда пароль соответствует, но почему в выражении if игнорируется, почему? - PullRequest
1 голос
/ 18 января 2020

так что я новичок в node js, и я пытаюсь создать систему входа в систему ... это мой логин Сообщение:

почтовый индекс входа в систему Он входит в оператор if (что означает, что пароль соответствует), но мой Res.status игнорируется. Я использую почтальон, чтобы увидеть, работает ли он, и он возвращает другой Res.status из оператора if. следующее изображение показывает, что:

печать почтальона

1 Ответ

0 голосов
/ 18 января 2020

В своем коде вы звоните finally, который вызывается независимо от того, успешно или нет ошибка аутентификации. Попробуйте убрать звонок на finally.

Почему ваш код 404 вызывался до then / catch? Потому что он не был внутри обратного вызова finally, а просто вызывался в обработчике записи.

Если вы закодируете это так:

finally( () => res.status(400).json({...}) )

Он будет вызван после then / catch. Ваш код сделал это раньше. Он был оценен до того, как Обещание было разрешено или отклонено.

Посмотрите на следующий пример

function sendError() {
   ...
}

getUser()
   .then(response => ...)
   .catch(err => ... )
   .finally( sendError() );

В моем примере sendError всегда вызывается перед getUser (). Это то же самое в вашем коде.

Тем не менее, если вы сделаете это правильно в обратном вызове для finally, это выдаст ошибку, потому что ответ уже отправлен.

Надежды, которые делают его ясно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...