Не удается прочитать свойство 'catch' из неопределенного - PullRequest
1 голос
/ 14 апреля 2019

Я пытаюсь использовать шифрование Argon2 в Node, но когда я пытаюсь зашифровать строку, я получаю эту ошибку:

Cannot read property 'catch' of undefined

Я пытался обработать ошибки из обещания, возвращенного функцией argon2.hash, но он все еще не работает.

Это мой код:

argon2.hash('password', {type: argon2.argon2id})
    .then(hash => {
        // do something with the hash
    }).catch(err => {
        // Handle the error
    });

Может ли кто-нибудь помочь мне с исправлением этой ошибки?

Ответы [ 2 ]

1 голос
/ 14 апреля 2019

Выдает исключение, не возвращает обещание. Таким образом, нет объекта обещания, для которого могли бы быть вызваны методы then (…) .catch (…).

Чтобы поймать его, вам понадобится блок try / catch

со страницы argon2 github , вы должны сделать это:

const argon2 = require('argon2');

try {
  const hash = await argon2.hash("password");
} catch (err) {
  //...
}
0 голосов
/ 14 апреля 2019

Попробуйте вместо этого:

argon2.hash('password', {type: argon2.argon2id})
  .then(hash => {
    // do something with the hash
}, err => {
    // Handle the error
});

Вторым параметром в предложении then является обработчик onError.

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