36-2 Création de l'entité Utilisateur
- Sous le dossier
src/utilisateurs/entities, créez une classeutilisateur.entity.tsavec le décorateur@Entitypour créer la table associée et qui hérite deBaseEntity.src/utilisateurs/entities/utilisateur.entity.tsimport { BaseEntity, Entity } from 'typeorm';
@Entity('utilisateurs')
export class Utilisateur extends BaseEntity {
} - Cette entité aura des propriétés
id,prenom,nom,courriel,nomUtilisateur,password(à noter que je préfère utiliser la terminologie en anglais pourpassword).src/utilisateurs/entities/utilisateur.entity.ts@Entity('utilisateurs')
export class Utilisateur extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column({ type: 'varchar', length: 255 })
prenom: string;
@Column({ type: 'varchar', length: 255 })
nom: string;
@Column({ type: 'varchar', length: 255 })
courriel: string;
@Column({ type: 'varchar', length: 32 })
nomUtilisateur: string;
@Column({ type: 'varchar', length: 255 })
password: string;
@CreateDateColumn()
date_creation: string;
@UpdateDateColumn()
date_modification: string;
}
Enregistrement de l'entité auprès de TypeORM
Il nous faut ajouter l'entité à TypeORM pour que la table soit créée et gérée automatiquement par l'ORM:
src/app.module.ts
@Module({
imports: [
//...
TypeOrmModule.forRoot({
type: 'postgres',
host: process.env.DATABASE_HOST,
port: +process.env.DATABASE_PORT,
username: process.env.DATABASE_USER,
password: process.env.DATABASE_PASSWORD,
database: process.env.DATABASE_NAME,
entities: [Projet, Issue, Utilisateur],
//...
Ce qui devrait donner dans la console d'exécution du serveur la requête SQL suivante:
CREATE TABLE "utilisateurs" ("id" SERIAL NOT NULL, "prenom" character varying(255) NOT NULL, "nom" character varying(255) NOT NULL, "courriel" character varying(255) NOT NULL, "nomUtilisateur" character varying(255) NOT NULL, "password" character varying(255) NOT NULL, "date_creation" TIMESTAMP NOT NULL DEFAULT now(), "date_modification" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT "PK_d3c39b551c51a0bdc76e07b9197" PRIMARY KEY ("id"))