typescript 尝试在nestjs中创建用户时,username中没有默认值

to94eoyn  于 2023-11-20  发布在  TypeScript
关注(0)|答案(1)|浏览(110)

虽然我能够完美地执行GET请求,但我在使用表单数据发送POST请求时遇到了麻烦。
虽然我能够使用form-urlencoded和原始JSON成功发送POST请求,但我在处理表单数据时遇到了麻烦。
当我试图向我的数据库发送一个post请求时,我似乎得到了一个错误:ER_NO_DEFAULT_FOR_FIELD: Field 'username' doesn't have a default value,尽管我在postman中为它提供了一个值。
下面是我的repo代码:

import { EntityRepository, Repository } from 'typeorm';
import { User } from './user.entity';
import { CreateUserDTO } from './dto/create-user.dto';

@EntityRepository(User)

export class UserRepository extends Repository<User> {
    getUser() {
        const query = this.createQueryBuilder('user');
        return query.getMany();
    }
createUser(createUserDTO: CreateUserDTO) {
    const {username, email } = createUserDTO;
    // tslint:disable-next-line:no-console
    console.log('Repo', username);

    // tslint:disable-next-line:new-parens
    const newuser = new User(); //edited after Natan's comment
    newuser.username = username;
    newuser.email = email;

    return newuser.save();
    }
}

字符串
这是我的实体代码:

@Entity()
export class User extends BaseEntity {
    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    username: string;

    @Column()
    email: string;
}


我在控制器中的请求:

@Post()
    createUser(
        @Body() createUserDTO: CreateUserDTO,
    ) {
        // tslint:disable-next-line:no-console
        console.log('creating new user', createUserDTO);
        return this.userService.createUser(createUserDTO);
    }


下面是postman中的post请求的图片:

mgdq6dx1

mgdq6dx11#

你必须使用()在TS中示例化一个类,比如:

createUser(createUserDTO: CreateUserDTO) {
    const {username, email } = createUserDTO;
    // tslint:disable-next-line:no-console
    console.log('Repo', username);

    // tslint:disable-next-line:new-parens
    const newuser = new User(); // <- HERE IS new User()
    newuser.username = username;
    newuser.email = email;

    return newuser.save();
}

字符串

相关问题