Typescript 我得到了一个验证管道';当我在邮递员身上传递电子邮件和密码时出错

Typescript 我得到了一个验证管道';当我在邮递员身上传递电子邮件和密码时出错,typescript,validation,pipe,postman,nestjs,Typescript,Validation,Pipe,Postman,Nestjs,以下是错误的屏幕截图: 以下是DTO的代码: import {IsString, IsInt,IsEmail,IsNotEmpty, IsNumberString, IsIn} from 'class-validator' export class logindto{ @IsEmail() username:String @IsNotEmpty() password:String } 以下是控制器的代码: @Post('login') log(@Body(

以下是错误的屏幕截图:

以下是DTO的代码:

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

export class logindto{
    @IsEmail()
    username:String

    @IsNotEmpty()
    password:String
}
以下是控制器的代码:

@Post('login')
log(@Body('username')username:logindto,@Body('password')password:logindto):any{
    return this.crudservice.loginsys(username,password)
}
以下是服务守则:

export class CrudService {
    constructor(@InjectModel('student') private readonly student:Model<studentmodel>){} 

    async loginsys(username,password):Promise<any>{
            const cred=this.student.findOne({username:username,password:password})
            return cred
    }
}

我已经传递了表单数据的标题:application/x-www-url-form-encoded或application/json。但是仍然得到了相同的错误

通过在
@Body()
装饰器中包含字符串,您告诉nest查找
请求主体的
'username'
属性,但您也在说
req.body.username
应该是
logindto
,所以类验证器期望找到
req.body.username.username
req.body.username.password
以及
req.body.password.username
。要解决此问题,请从
@Body()
装饰器中删除字符串。如果需要分别获取用户名和密码,可以使用对象解构,但我建议在方法体的签名之外进行解构

@Post('login'))
日志(@Body()登录名:logindto,):任意{

const{username,password}=login;//我尝试了您的方法,但出现错误:CastError:Cast-to-string值“{username:”失败xyz20@test.com“,密码:”xyz@1234模型“学生”的路径“密码”处的“}”model
student
与此有什么关系?这听起来像是一个完全不同的问题。我添加了我的模式和模型的代码,并更新了我的服务代码,我是如何使用StudentModel的。我仍然不知道你对我的建议做了什么,现在有什么失败之处。你使用了任何反循环吗我将使用多个@Body()
修饰符?您是否检查了控制器或服务中用户名和密码的值?我只是删除了我在@Body()修饰符中写入的“用户名”和“密码”。是的,我将多个@Body()修饰符用于我的用户名和密码,我的用户名和密码类似于@Body()用户名:logindto,@Body()密码:像这样登录。我的主要目的是对用户名和密码使用验证管道。当应用验证管道时,我遇到了问题中提到的错误。当我删除管道时,我得到了所需的输出。我的问题是,当应用管道时,我没有得到所需的输出
import * as mongoose from 'mongoose'


export const studentschema=new mongoose.Schema({
    name:{type:String,required:true},
    std:{type:Number},
    rollno:{type:Number},
    section:{type:String},
    username:{type:String},
    password:{type:String}
});

export interface studentmodel  extends mongoose.Document{
   readonly name:String,
   readonly std:Number,
   readonly rollno:Number,
   readonly section:string,
   readonly username:string,
   readonly password:string
}