Теперь, когда вы знаете, как быстро создавать REST API поверх баз данных всего за 5 шагов из этого руководства, вы могли заметить, что LoopBack принимает модели и имена свойств модели в качестве имени таблицы и столбца базы данных, соответственно. В этой статье показано, как настроить сопоставление между моделями и базами данных.

Для запуска приложения см. Репо: https://github.com/dhmlau/loopback4-example-todo-customized. Я проверил пример с помощью коннектора PostgreSQL, но он должен работать аналогично для других коннекторов.

Базовый пример

После запуска CLI генератора моделей `lb4 model` для создания модели LoopBack 4 ваш файл model.ts, вероятно, будет выглядеть примерно так:

@model()
export class Todo extends Entity {
  @property({
    type: 'number',
    id: true,
  })
  id?: number;
@property({
    type: 'string',
    required: true,
  })
  title: string;
//...
}

Без какой-либо настройки ожидается, что имя базы данных будет Todo, а со столбцами (если в реляционной базе данных) будут id и title.

Что, если имя моей таблицы базы данных отличается от имени модели?

С помощью параметров, связанных с источником данных, вы можете указать имя схемы базы данных под ключом с именем типа соединителя.

Внутри декоратора @model укажите в settings:

  • тип разъема
  • имя таблицы базы данных, которую вы хотите сопоставить

См. Пример ниже:

@model({
  settings: {
    postgresql: { //type of the connector, NOT datasource name
      table: 'TODO_123', //table name you want to map to
    },
  },
})
export class Todo extends Entity {

Для других вариантов, пожалуйста, обратитесь к https://loopback.io/doc/en/lb3/Model-definition-JSON-file.html.

Что, если имя столбца моей таблицы отличается от имени свойства модели?

Мы вас прикрыли. Внутри декоратора property укажите:

  • тип разъема
  • имя столбца вашей таблицы базы данных
@property({
    type: 'string',
    required: true,
    postgresql: { //type of the connector
      columnName: 'TODO_TITLE', //column name in the database
    },
  })
title: string;

Хотите узнать больше о LoopBack?

Попробуйте v4.loopback.io!

Не забывайте подписываться на нас: