gpt4 book ai didi

node.js - 从 mat-select 将数据保存到数据库 MongoDB

转载 作者:太空宇宙 更新时间:2023-11-04 01:34:23 25 4
gpt4 key购买 nike

我有收集玩家和收集团队。我想将负载玩家添加到团队中。

在创建团队的 HTML 中,我从玩家加载数据,用户可以选择加载玩家:

<mat-form-field>
<mat-select placeholder="Goalkeepers" formControlName="goalkeeper">
<mat-option *ngFor="let player of goalkeepers" [value]="player">
{{player.name}} {{player.surename}} ({{player.price}}M)
</mat-option>
</mat-select>
<mat-error *ngIf="form.get('goalkeeper').invalid">Pleasse enter a goalkeeper.</mat-error>
</mat-form-field>

在 user.component.ts 中我保存数据。以下是将数据从玩家加载到 HTML:

 this.playersService.getPlayersForTeam();
this.playersSub = this.playersService
.getPlayerUpdateListener()
.subscribe((playerData: {players: Player[]}) => {
this.players = playerData.players;
});

这里是将数据保存到数据库:

onSaveUserTeam() {
this.userTeamsService.addUserTeam(
this.form.value.name,
this.form.value.goalkeeper,
this.form.value.goalkeeper_sub,
this.form.value.midfielder1,
... etc ...
);

我将数据发送到数据库,没有错误。当我只有这个输入时:

<input matInput type="text" formControlName="goalkeeper" placeholder="UserTeam goalkeeper">
<mat-error *ngIf="form.get('goalkeeper').invalid">Please enter a userTeam goalkeeper.</mat-error>
</mat-form-field>

就像文本一样,当我写一些东西输入然后发送到数据库时,一切都很好。但是现在,当我对玩家集合中的玩家进行垫选择时,我会在数据库中得到如下内容:

{
_id: ObjectId('5c7ecdd75c09e23d903f1bb9')
name: "Test"
goalkeeper: "[object Object]"
goalkeeper_sub: "[object Object]"
}

这是一个问题,因为我需要具有相同的特定玩家详细信息,例如玩家ID,以便稍后用于编辑团队等...我在将数据发送到数据库时做错了什么?感谢您的帮助!

最佳答案

看起来 Angular 序列化对象的方式不是它应该序列化的方式。也许您从表单向此方法传递了不正确的值。

我建议您重构 addUserTeam 方法,以便它接受需要上传的单个对象并完全删除表单数据。

addUserTeam(userTeam: UserTeam) {
this.http.post('http://localhost:3000/api/userteams', userTeam);
}

其中 UserTeam 是一个类/接口(interface),其中包含屏幕截图中附加的所有属性。

关于node.js - 从 mat-select 将数据保存到数据库 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55010771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com