Как использовать DTO в сервисном файле приложения nest js - PullRequest
1 голос
/ 15 апреля 2020

Я хочу получить данные конкретного человека из mongodb на основе значений имени пользователя и пароля, но я получил все данные из базы данных вместо конкретного человека, которых я передал в имени пользователя и пароле.

Здесь это код DTO:

import {IsString, IsInt,IsEmail,IsNotEmpty, IsNumberString} from 'class-validator';

export class LoginDto {
    @IsEmail()
    username: string;

    @IsNumberString()
    password: string;
}

Вот код Сервиса:

async loginsys(credentials: LoginDto): Promise<any> {
    const cred = await this.student.find({ credentials }).exec();
    return cred;
}

Вот код контроллера:

@Post('login')
log(@Body('credentials') credentials: LoginDto): any {
    return this.crudservice.loginsys(credentials);
}

1 Ответ

1 голос
/ 15 апреля 2020

Если вы хотите получить ровно одну сущность, вы можете использовать findOne вместо find:

return this.student.findOne(credentials)

find должно работать, если вы передадите свой запрос where :

find({where: credentials})`

exec() не обязательно.

...