json 无法读取未定义的属性(阅读“isProxy”)

yzuktlbb  于 2023-01-22  发布在  其他
关注(0)|答案(1)|浏览(129)

我想按ID查询数据库以显示数据。我遇到此错误。“未处理的承诺拒绝:无法读取undefined(阅读“isProxied”)""的属性。可能有人遇到了此错误。请告诉我如何解决此错误。
服务器

const express = require('express');

const lists = require('../models/lists');

const Description = require('../models/description');

router.get('/descriptions', (req, res) => {Description.find({ active: true }).then(descriptions => res.json(descriptions))});

router.get('/description-by-id', (req, res) => {let descriptionId = req.query.param1;
Description.findById(descriptionId).then( description => res.json(description));
});
 
router.get('/lists', (req, res) => {lists.find({ active: true }).then(lists => res.json(lists))`});module.exports = router;
 
 TS файл

import { HttpClient } from '@angular/common/http';

import { Component, Input, OnInit } из '@angular/core';

import { ScrollingModule } из '@angular/cdk/scrolling';

export interface List {
userId: String;
userId: String;
number: Number;
treatments: Array<any>;}
 
selector: 'app-invoices-form',

templateUrl: './invoices-form.page.html',

styleUrls: ['./invoices-form.page.scss'],})
export class InvoicesFormPage implements OnInit {
@Input() lists: List;
descriptionsArr: Array<any> = [];

constructor( private http: HttpClient, private scroll: ScrollingModule) {}
 
 ngOnInit() {
 if (this.lists.descriptions && this.lists.descriptions.length \> 0) { for (let item of this.lists.descriptions){ this.http.get\<any\>(`http://localhost:8100/description-by-id? 
 parameter1=${item.descriptionId})
 .subscribe((result: any) =\> { this.descriptionsArr.push({ 
        id: item.descriptionId, 
        name: result.name, 
        surname: result.surname
          });
        });
      }
    }
  }
}
8tntrjer

8tntrjer1#

您提供的代码是使用Express框架在Node.js中编写的服务器端代码,以及使用Angular框架在TypeScript中编写的客户端代码。
在服务器端,您已定义了多个路由来处理GET请求。第一个路由“/descriptions”将返回Description集合中“active”字段设置为true的所有文档。第二个路由“/description-by-id”将返回Description集合中与作为查询参数传递的ID匹配的文档。第三个路由“/lists”将返回列表集合中“active”字段设置为true的所有文档。
在客户端,您已经定义了一个实现OnInit生命周期挂钩的类“InvoicesFormPage”。在ngOnInit方法中,您将检查“lists”对象是否具有“descriptions”属性,以及它是否是一个包含多个元素的数组。然后,您将迭代"descriptions“数组,并向服务器上的”/description-by-id“路由发出GET请求。将"descriptionId“作为查询参数传递。服务器的响应是一个具有属性”name“和”surname“的对象,然后将其推送到" descriptionsArr”数组。
看起来问题是服务器没有运行,或者客户端指向了不同的服务器。
确保服务器正在运行,并且通过检查客户端上http.get()方法中的IP地址和端口,客户端指向正确的服务器。IP地址应与运行服务器的计算机的IP匹配,端口应与服务器侦听的端口匹配。
此外,请确保您在服务器端定义的路由与您在客户端调用的路由匹配。
如果不提供有关当前设置和错误性质的更多信息,就很难给予更具体的解决方案。

相关问题