Angular и Nodejs: Выберите местоположение на карте - PullRequest
0 голосов
/ 06 апреля 2020

У меня возникла ошибка при добавлении местоположения Произошла ошибка Невозможно извлечь географические ключи Координаты точек должны быть конечными числами в схеме бэкэнда

location: {
        type: {
            type: String,
            enum: ['Point'],
            required: true,
        },
        coordinates: {
            type: [Schema.Types.Mixed],
            required: true,
        }
    }

и контроллером

location: { "type": 'Point', "coordinates": [parseFloat(req.body.longitude), parseFloat(req.body.latitude)] }

и во внешнем интерфейсе у меня открывается диалоговое окно, когда я нажимаю кнопку и выбираю местоположение, при закрытии диалога оно заполняет два поля долготой и широтой все отлично работает код внешнего интерфейса

locationData: any = {};
onInit(){
  this.locationData = {
      longitude: 0,
      latitude: 0
    }
}
//open the dialog function
onGetLocationBtnClicked() {
    let options = {
      width: "600px",
      height: "500px",
      data: {}
    }
    let dialogRef = this.dialog.open(GetLocationComponent, options);
    dialogRef
      .afterClosed()
      .subscribe(
        data => {
          this.locationData = data;
        }
      );
  }

и для HTML кода

<div class="form-group col-8">
      <mat-form-field>
        <input
          type="number"
          matInput
          formControlName="latitude"
          class="form-control"
          placeholder="Enter Store latitude"
          [(ngModel)]="locationData.latitude"
        />
      </mat-form-field>
    </div>
    <div class="form-group col-8">
      <mat-form-field>
        <input
          type="number"
          matInput
          formControlName="longitude"
          class="form-control"
          placeholder="Enter Store longitude"
          [(ngModel)]="locationData.longitude"
        />
      </mat-form-field>
    </div>

при закрытии диалогового окна он заполняет поля выбранной долготой и широтой, и на этом экране отображается , он отлично работает , но при отправке эта ошибка появляется

"Error Occured Can't extract geo keys: { _id: ObjectId('5e8b6f6167ed561ff0b6336c'), jobs: [], products: [], offers: [], name: "test", location: { type: "Point", coordinates: [ nan(snan).0, nan(snan).0 ] }, logo: "http://localhost:3000/images/stores/test-1586196320026.png", catId: ObjectId('5e1078d5b897aa2810a98444'), createdAt: new Date(1586196321489), updatedAt: new Date(1586196321877), __v: 0 }  Point coordinates must be finite numbers"
...