gpt4 book ai didi

node.js - 如何迭代对象数组或将对象列表转换为数组?

转载 作者:太空宇宙 更新时间:2023-11-03 21:50:41 24 4
gpt4 key购买 nike

当我从 SqlServer 调用 API 时,我有以下结构:

{
"recordsets": [
[
{
"id_alquiler": 71735,
"nombre_tipo_exhibidor": "Exhibidores de Temporada",
"nombre_empresa": "TIOMAE",
"nombre_estado_alquiler": "Por Montar",
"marca": "ElTio",
"nombre_sucursal": "EUAI"
},
{
"id_alquiler": 71736,
"nombre_tipo_exhibidor": "Exhibidores de Temporada",
"nombre_empresa": "TIOELTOE",
"nombre_estado_alquiler": "Por Montar",
"marca": "Wuayba",
"nombre_sucursal": "TOBAIE"
},

当我通过受影响的资源管理器调用 .ts 组件中的 API 时,它会向我发送此错误“尝试比较 '[object Object]'。仅允许数组和可迭代对象”

我有一个具有结构的接口(interface),并且按照我调用对象的顺序在后面或前面正确键入了对象,但它仍然向我发送错误,我知道这是因为我需要转换对象,但我已经用 .map () 和 .keys () 以各种方式进行了测试,但我没有给出,请帮助。这是后端返回查询的函数:

export async function listAlq(req: Request, res: Response) {
console.time('loop')
try {
let response:Alquiler = await pool1.query(
"Select query");
console.log(response);
res.status(200).json(response);
}
catch(error) { //Capturando error
console.error(error, 'Internal server Error', res.status(500));
}
console.timeEnd('loop')
}

Angular 中的服务

@Injectable({
providedIn: 'root'
})
export class DataService {
constructor(
private http: HttpClient
) { }

getAllAlq() {
return this.http.get<Alquiler[]>('http://localhost:3000/api/alq');
}

Angular 组件.tsc

export class AlquileresComponent implements OnInit {

alquiler: Alquiler[] = [];

constructor(
private dataService: DataService
) { }

ngOnInit() {
this.fetchAlq();
}

fetchAlq() {
this.dataService.getAllAlq()
.subscribe(alquiler => {
this.alquiler = alquiler;
console.log(alquiler);
});
}

}

和我的 html

<app-alquileres *ngFor="let alq of alquiler.recordsets">
<div>
<h5>{{ alq.id_alquiler }}</h5>
<h5>{{ alq.marca }}</h5>
<h5>{{ alq.nombre_empresa }}</h5>
<h5>{{ alq.nombre_estado_alquiler }}</h5>
<h5>{{ alq.nombre_sucursal }}</h5>
</div>
</app-alquileres>

我目前正在无限地运行对象,无法在 DOM 中绘制对象,请帮忙

最佳答案

我认为你的对象嵌套的数组比你的 html 预期的更深。根据你的代码片段...

{
"recordsets": [
[
{
"id_alquiler": 71735,
"nombre_tipo_exhibidor": "Exhibidores de Temporada",
"nombre_empresa": "TIOMAE",
"nombre_estado_alquiler": "Por Montar",
"marca": "ElTio",
"nombre_sucursal": "EUAI"
},
{
"id_alquiler": 71736,
"nombre_tipo_exhibidor": "Exhibidores de Temporada",
"nombre_empresa": "TIOELTOE",
"nombre_estado_alquiler": "Por Montar",
"marca": "Wuayba",
"nombre_sucursal": "TOBAIE"
},

alquiler.recordsets 是包含对象的数组的数组。

不确定什么对您来说更容易/更好地更改,服务还是 html,但我敢打赌,如果您将当前的 html 更改为以下内容,您应该会看到一些东西。

<app-alquileres *ngFor="let alq of alquiler.recordsets[0]">
<div>
<h5>{{ alq.id_alquiler }}</h5>
<h5>{{ alq.marca }}</h5>
<h5>{{ alq.nombre_empresa }}</h5>
<h5>{{ alq.nombre_estado_alquiler }}</h5>
<h5>{{ alq.nombre_sucursal }}</h5>
</div>
</app-alquileres>

关于node.js - 如何迭代对象数组或将对象列表转换为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59396834/

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