Bcrypt вызывает закрытие Postgres - PullRequest
0 голосов
/ 12 июля 2020

Я работаю над созданием таблицы пользователей с помощью Bcrypt и получаю сообщение об ошибке:

(node:54133) UnhandledPromiseRejectionWarning: Error: Client was closed and is not queryable

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

Функция посева

async function testUsers() {
  try {
    console.log("testing");
    bcrypt.hash("bertie99", SALT_COUNT, async function (err, hashedPassword) {
      console.log("71", err);
      const starter = await createUser({
        username: "userone",
        password: hashedPassword,
        email: "123@yahoo.com",
      });
      console.log(starter);
    });
  } catch (error) {
    console.log(error);
  }
}

Вспомогательная функция

async function createUser({ username, password, email }) {
  try {
    console.log("email", email);
    console.log("username", username);
    console.log("password", password);
    const result = await client.query(
      `
      INSERT INTO users(username, password, email)
      VALUES ($1, $2, $3);
    `,
      [username, password, email]
    );

    return result;
  } catch (error) {
    throw error;
  }
}

1 Ответ

0 голосов
/ 12 июля 2020

Итак, похоже, что хеширование требует ожидания, я отредактировал функцию, как показано ниже, и она работает.

  try {
    console.log("testing");
    const hash = await bcrypt.hashSync("bertie99", saltRounds);
    const starter = await createUser({
      username: "userone",
      password: hash,
      email: "123@yahoo.com",
    });
    console.log(starter);
  } catch (error) {
    console.log(error);
  }
}
...