Um Ihr einfaches JavaScript-Objekt umzuwandeln, das von toObject
zurückgegeben wird in ein typisiertes Objekt, möchten Sie vielleicht class-transformer
verwenden Bibliothek (die Bibliothek wird von Nest.js
empfohlen).
zu Validierungszwecken).
Schritt 1.
Installieren Sie zuerst class-validator
:
$ npm i --save class-transformer
Schritt 2.
Einmal installiert, vorausgesetzt User
Klasse hat die folgenden Eigenschaften:
class User {
public id: any;
public email: string;
public password: number;
}
Erstellen Sie eine weitere Klasse namens UserWithoutPassward
und importieren Sie Exclude
import { Exclude } from "class-transformer";
class UserWithoutPassword extends User {
@Exclude()
public password: number
}
Wir verwenden Exclude
Anmerkung, um class-transformer
zu lassen wissen, dass wir password
ausschließen möchten .
Schritt 3.
importiere die plainToClass
Funktion:
import { plainToClass } from "class-transformer";
Und zurück zu Ihrem Code:
async validateUser(email: string, password: string): Promise<UserWithoutPassword | null> {
const user = await this.usersService.findOne({ email });
if (user && await compare(password, user.password))
{
return plainToClass(UserWithoutPassword, user.toObject());
}
return null;
}
plainToClass
-Methode wandelt ein einfaches Javascript-Objekt in eine Instanz einer bestimmten Klasse um und akzeptiert die folgenden Parameter:
- Die zu instanziierende Klasse
- einfaches Objekt
Weitere Referenzen zur Bibliothek
Hoffe es hilft.