Я использую bcrypt для паролей sh и MongoDB в качестве своей базы данных.
Вот код:
export default function buildMakeUser({pwdHasher})
{
return function makeUser({
username,
email,
password,
password_hash = pwdHasher(password), // the important part
favoriteColor
} = {})
{
// ...
return Object.freeze({
getUsername: () => username,
getEmail: () => email,
getHashedPassword: () => password_hash,
getFavoriteColor: () => favoriteColor
});
}
А вот определение pwdHasher
:
import bcrypt from "bcrypt";
import buildMakeUser from "./entity/user.js";
async function pwdHasher(password){
let hashed;
hashed = await bcrypt.hash(password, 10);
return hashed;
}
Однако, когда я сохраняю пользователя в базе данных, вот результат:
ops: [
{
username: 'kibe',
email: 'blabla@gmail.com',
password_hash: [Promise],
_id: 5ecc8b752e0aa53e87d5b62a
}
],
Похоже, что объект makeUser
не ждет pwdHasher(password)
. Я пробовал обернуть pwdHasher
в обещание, и это тоже не сработало.
Кто-нибудь знает почему?
Спасибо.