我已经使用typeorm设计了架构,并允许字段reference
和key
的可空值,如下所示
@Entity()
export class User{
@PrimaryGeneratedColumn()
id: number;
@Column({ nullable: true, default: null })
key: string;
@Column({ nullable: true, default: null })
reference: string;
}
在我的解析器中,我的突变将是:
Mutation: {
createUser: async(_,{ input },ctx) => {
let user = new User();
user.reference = input.reference
return await ctx.db.manager.save(user);
},
这是我的输入变量请求:
mutation($UserInput:UserInput){
createUser(input:$UserInput)
{
id
key
reference
}
}
{
"UserInput":{
"key":"key1"
}
}
在上述请求中,请说是否错过了插入reference
的机会。如果您在突变函数中用控制台注销input.reference
值,则会看到它返回undefined
。但是,由于我们先前在typeorm中启用了nullable选项,因此数据库接受undefined
值并返回null
。
在这种情况下,很好奇,undefined
值是否仍会占用数据库内存?有什么影响?还是应该在我的突变函数中进行条件检查,以避免将undefined
值插入数据库?