Как проверить модель в Loopback 4? - PullRequest
0 голосов
/ 21 апреля 2019

Я довольно плохо знаком с фреймворком Loopback 4 и пытаюсь использовать его для небольшого проекта, который должен соединять данные из разных видов баз данных и сервисов.Одна из основных причин, по которой я использую версию 4, заключается в Typescript, а также в том, что он поддерживает функции ES7 (async / await), что мне очень нравится.Тем не менее, я понятия не имею, как реализовать проверку модели, по крайней мере, не так, как поддерживает Loopback v3.

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

import {Entity, model, property} from '@loopback/repository';

@model()
export class Person extends Entity {
  @property({
    type: 'number',
    id: true,
    required: true,
  })
  id: number;

  @property({
    type: 'string',
    required: true,
  })
  name: string;

  @property({
    type: 'date',
    required: true,
  })
  birthDate: string;

  @property({
    type: 'number',
    required: true,
  })
  phone: number;

  constructor(data: Partial<Person>) {
    if (data.phone.toString().length > 10) throw new Error('Phone is not a valid number');
    super(data);
  }
}

1 Ответ

0 голосов
/ 22 апреля 2019

LB4 использует модуль ajv для проверки данных входящего запроса на основе метаданных вашей модели.Итак, вы можете сделать это с помощью jsonSchema, как указано ниже.

export class Person extends Entity {
  @property({
    type: 'number',
    id: true,
    required: true,
  })
  id: number;

  @property({
    type: 'string',
    required: true,
  })
  name: string;

  @property({
    type: 'date',
    required: true,
  })
  birthDate: string;

  @property({
    type: 'number',
    required: true,
    jsonSchema: {
      maximum: 10,
    },
  })
  phone: number;

  constructor(data: Partial<Person>) {
    super(data);
  }
}

Надеюсь, что это работает.Обратитесь к ответу на аналогичный вопрос по репозиторию LB4 здесь для получения более подробной информации.

...