как ожидать при использовании class-transformer в nestjs?

#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 вместо a password в dto и явно вызовите свою hashPass функцию при ее создании.

Ответ №1:

На данный момент вы не можете, поскольку class-transformer его не поддерживает.

Декоратор transformer ожидает синхронную функцию преобразования.

В качестве обходного пути вы можете попробовать не обещающую версию bcrypt:

 bcrypt.hashSync(user.password, 7);