#javascript #node.js #typescript #nestjs
#javascript #node.js #typescript #nestjs
Вопрос:
я новичок в nestjs.
я пытаюсь преобразовать текстовый пароль в зашифрованную строку, но получаю его как «Обещание { }»
как я могу ждать здесь?
import { Transform } from 'class-transformer';
import * as bcrypt from "bcrypt";
const hashPass = async user => {
return await bcrypt.hash(user.password, 7);
}
export class UserDto {
readonly name: string;
readonly phone: number;
readonly username: string;
readonly email: string;
@Transform( hashPass, {toClassOnly: true})
readonly password: string;
}
Комментарии:
1. Из того, что я вижу в документации библиотеки, это кажется невозможным. Однако преобразование пароля в строку в любом случае не должно происходить при неявном принуждении, просто явно сохраните a
passwordHash
вместо apassword
в dto и явно вызовите своюhashPass
функцию при ее создании.
Ответ №1:
На данный момент вы не можете, поскольку class-transformer его не поддерживает.
Декоратор transformer ожидает синхронную функцию преобразования.
В качестве обходного пути вы можете попробовать не обещающую версию bcrypt:
bcrypt.hashSync(user.password, 7);