sql >> Database teknologi >  >> NoSQL >> MongoDB

Typescript Mongoose ignorer visse felter i forespørgselsresultatet på den sikre måde

For at transformere dit almindelige JavaScript-objekt returneret af toObject ind i et indtastet objekt, vil du måske bruge class-transformer bibliotek (biblioteket anbefales af Nest.js til valideringsformål).

Trin 1.

Installer først class-validator :

$ npm i --save class-transformer 

Trin 2.

Når den er installeret, forudsat Bruger klasse har følgende egenskaber:

klasse Bruger { public id:any; offentlig e-mail:streng; offentlig adgangskode:nummer; }

Opret endnu en klasse ved navn UserWithoutPassward og importer Ekskluder

importer { Exclude } fra "class-transformer";klasse UserWithoutPassword udvider bruger { @Exclude() offentlig adgangskode:nummer} 

Vi bruger Exclude annotation for at lade klasse-transformer ved, at vi gerne vil udelukke adgangskode .

Trin 3.

importer plainToClass funktion:

importer { plainToClass } fra "class-transformer"; 

Og tilbage til din kode:

async validateUser(e-mail:string, password:string):Promise { const user =await this.usersService.findOne({ email }); if (bruger &&afvent sammenligne(adgangskode, bruger.adgangskode)) { return plainToClass(BrugerUdenPassword, bruger.toObject()); } returner null;} 

plainToClass metoden transformerer et almindeligt javascript-objekt til en instans af en specifik klasse og accepterer følgende parametre:

  1. Klassen, der skal instansieres
  2. almindeligt objekt

Yderligere reference om biblioteket

Håber det hjælper.




  1. MongoDB vælge og sammenkæde felter

  2. hvordan man definerer placering i en enhed ved hjælp af mongodb

  3. Mongoose befolker returnerende tom array

  4. MongoDB kan ikke finde databibliotek efter opgradering til Mac OS 10.15 (Catalina)