javascript - Nestjs 更新为其他字段返回 null,从而产生验证问题
问题描述
我正在研究 Nest.js CRUD。每个其他组件都工作正常,但是当我尝试更新一个字段时,更新会引发验证错误,说其他字段不能留空。我试图从服务文件中解决这个问题,但我仍然收到验证错误。我尽力以不同的方式对其进行调整,但没有任何反应。以下是我能够想出的。我不知道我做错了什么。
account.repository.ts
async updateAccount(
id: string,
updateAccountDto: UpdateAccountDto
): Promise<UpdateAccountDto> {
let { bankName, accountName, accountNumber } = updateAccountDto;
const account = this.findOneOrFail(id);
const oldBankName = (await account).bankName;
const oldAccountName = (await account).accountNumber;
const oldAccountNumber = (await account).accountNumber;
if (bankName === null) {
bankName = oldBankName;
}
if (accountName === null) {
accountName = oldAccountName;
}
if (accountNumber === null) {
accountNumber = oldAccountNumber;
}
const query = this.createQueryBuilder('account');
await query
.update(Account)
.set({ bankName, accountName, accountNumber })
.where('account.id = :id', { id })
.execute();
return updateAccountDto;
}
account.controller.ts
@Put('/update/:id/')
updateAccount(@Param('id') id: string, @Body() uaDto: UADto) {
return this.accountService.updateAccount(id, uaDto);
}
account.service.ts
async updateAccount(id: string, updateAccountDto: UpdateAccountDto) {
return this.accountRepository.updateAccount(id, updateAccountDto);
}
帐户.dto
export class CreateAccountDto {
@IsNotEmpty()
accountName: string;
@IsNotEmpty()
accountNumber: string;
@IsNotEmpty()
bankName: string;
}
account.entity,ts
@Entity()
export class Account {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column({ nullable: true })
accountName: string;
@Column({ nullable: true })
accountNumber: string;
@Column({ nullable: true })
bankName: string;
}
解决方案
推荐阅读
- javascript - 根据复选框的选中状态控制元素
- visual-studio-code - 为什么这个 vscode 用户片段添加了一个额外的换行符?
- server - 在服务器上管理子域文件的最佳实践
- automation - 有没有办法让我通过我的帐户在 Discord 中发送自动消息?
- angular - 为什么这里没有绘制条形图?
- virtual-machine - 如何在启动主机时以全屏模式自动启动来宾虚拟机?
- javascript - React 道具不适用于 for 循环
- python - 无法将 KNeighborsClassifier 预测附加到列表
- ruby - 我只是想使用 ruby 2d 并没有显示任何输出
- cuda - ILP(指令级并行)对 GPU 程序优化有帮助吗?