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

Sql 尝试在nestjs中创建用户时,用户名中没有默认值,sql,node.js,typescript,backend,nestjs,Sql,Node.js,Typescript,Backend,Nestjs,我不熟悉nestjs,也不熟悉询问有关堆栈溢出的问题。 虽然我能够完美地执行get请求,但使用表单数据发送post请求时遇到了问题。 尽管我能够使用表单URL编码和原始json成功发送post请求,但我在处理表单数据时遇到了问题。 在尝试向我的数据库发送post请求时,我似乎收到了一个错误,上面写着:ER\u NO\u DEFAULT\u FOR\u字段:字段“username”没有默认值 尽管我在《邮递员》中为它提供了价值。 以下是我的回购协议的代码: import { EntityRepos

我不熟悉nestjs,也不熟悉询问有关堆栈溢出的问题。
虽然我能够完美地执行get请求,但使用表单数据发送post请求时遇到了问题。 尽管我能够使用表单URL编码和原始json成功发送post请求,但我在处理表单数据时遇到了问题。
在尝试向我的数据库发送post请求时,我似乎收到了一个错误,上面写着:
ER\u NO\u DEFAULT\u FOR\u字段:字段“username”没有默认值
尽管我在《邮递员》中为它提供了价值。 以下是我的回购协议的代码:

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();
    }
}
以及我在控制器中的post请求:

@Post()
    createUser(
        @Body() createUserDTO: CreateUserDTO,
    ) {
        // tslint:disable-next-line:no-console
        console.log('creating new user', createUserDTO);
        return this.userService.createUser(createUserDTO);
    }
以下是《邮递员》中的邮件请求图片:

必须使用
()
在TS中实例化类,如:

createUser(createUserDTO:createUserDTO){
const{username,email}=createUserDTO;
//tslint:禁用下一行:无控制台
console.log('Repo',用户名);
//tslint:禁用下一行:新参数
const newuser=new User();//必须使用
()
在TS中实例化类,如:

createUser(createUserDTO:createUserDTO){
const{username,email}=createUserDTO;
//tslint:禁用下一行:无控制台
console.log('Repo',用户名);
//tslint:禁用下一行:新参数

const newuser=新用户();//你好,Natan,我刚刚试过,但似乎不是错误。我一直都会遇到相同的错误。我仔细检查了一下,似乎您正在以查询参数的形式发送用户数据,并以请求正文的形式接收用户数据。您必须更改发出post请求的方式,在请求正文上发送JSON尝试以下方法:curl--location--request GET'\--header'内容类型:application/json'\--数据原始'{“用户名”:“Karma”,“email”:karma@gmail.com“}我只是想澄清一下,我能够执行get请求,并且工作完全正常,但问题似乎出在post上。以下是我运行post后得到的结果:
[{“id”:1,“username”:“karma”,“email”:”kzoepa@gmail.com“}]curl:(6)无法解析主机:-标头卷曲:(3)端口号以“”结尾卷曲:(6)无法解析主机:-数据原始[1/2]:“用户名”:“Karma”->-->--U卷曲--“用户名”:“Karma”卷曲:(3)端口号以“”结尾[2/2]:“电子邮件”:karma@gmail.com-->------“电子邮件”:karma@gmail.com“卷曲:(6)无法解析主机:gmail.com"
Hello Natan,我刚刚试过,但似乎不是错误。我一直都会遇到同样的错误。我仔细检查了一下,似乎您正在将用户数据作为查询参数发送,并将其作为请求正文接收。您必须更改发出post请求的方式,在请求正文上发送JSON尝试以下方法:curl--location--request GET'\--header'内容类型:application/json'\--数据原始'{“用户名”:“Karma”,“email”:karma@gmail.com“}我只是想澄清一下,我能够执行get请求,并且工作完全正常,但问题似乎出在post上。以下是我运行post后得到的结果:
[{“id”:1,“username”:“karma”,“email”:”kzoepa@gmail.com“}]curl:(6)无法解析主机:-标头卷曲:(3)端口号以“”结尾卷曲:(6)无法解析主机:-数据原始[1/2]:“用户名”:“Karma”->-->--U卷曲--“用户名”:“Karma”卷曲:(3)端口号以“”结尾[2/2]:“电子邮件”:karma@gmail.com-->------“电子邮件”:karma@gmail.com“卷曲:(6)无法解析主机:gmail.com“
您使用的是什么数据库?@JayMcDoniel使用的是mysql您使用的是什么数据库?@JayMcDoniel使用的是mysql
@Post()
    createUser(
        @Body() createUserDTO: CreateUserDTO,
    ) {
        // tslint:disable-next-line:no-console
        console.log('creating new user', createUserDTO);
        return this.userService.createUser(createUserDTO);
    }