Loopback4 проблемы - PullRequest
       9

Loopback4 проблемы

0 голосов
/ 26 июня 2019

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

  1. Загрузка источника данных на основе среды Нет прямого способа загрузить источник данных на основе среды.

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

  3. Невозможно подключиться к базе данных MongoDB Atlas.В экспресс-приложении я могу подключиться, но не в Loopback.Ниже приведена ошибка, которую он возвращает.url.dbName ||self.settings.database, ^ TypeError: Невозможно прочитать свойство 'dbName' со значением NULL

  4. Не удалось установить отношения модели.

  5. Я не хочувернуть всю модель в моем ответе API.Как я могу настроить свой ответ API, используя Модель?
  6. Я хочу записать свою бизнес-логику в отдельный файл, а не в контроллер / хранилище.Это хорошая идея ИЛИ где мне вернуть бизнес-логику?и лучшие практики.

Я не нашел надлежащей документации по Loopback4 для решения этих проблем.любая помощь будет оценена.

1 Ответ

1 голос
/ 28 июня 2019

Позвольте мне попытаться помочь вам с некоторыми из них.

1 - загрузку конфигурации ds на основе env можно добавить, добавив ниже в конструктор файла datasource.ts.

constructor(
  @inject('datasources.config.pgdb', {optional: true})
  dsConfig: object = config,
) {
  // Override data source config from environment variables
  Object.assign(dsConfig, {
    host: process.env.DB_HOST,
    port: process.env.DB_PORT,
    user: process.env.DB_USER,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_DATABASE,
    schema: process.env.DB_SCHEMA,
  });
  super(dsConfig);
}

После этого вы можете использовать такие пакеты, как dotenv , чтобы сохранить env vars в вашем репо.

2 - Используйте dotenv . Загрузите конфигурацию dotenv в application.ts. Добавьте это в конец application.ts.

dotenv.config();

Возможно, вам понадобится импортировать дотену, как это

import * as dotenv from 'dotenv';

3 - Не уверен в этом, но проверьте, поддерживается ли он в генераторе источника данных здесь .

4 - В настоящее время поддерживаются только 3 типа отношений. И, по моему опыту, этого достаточно для большинства приложений - принадлежит HasMany, hasOne. Для получения дополнительной информации см. Документы здесь .

5 - Вы можете вернуть любую понравившуюся вам модель. Просто убедитесь, что он расширяет класс Entity из @ loopback / repository. Также убедитесь, что вы определяете типы свойств с помощью @property decorator.

6 - Вы можете переместить свою бизнес-логику в классы обслуживания или создать поставщиков. Раньше мы хранили специфическую операционную логику БД, такую ​​как пользовательские запросы и т. Д., В хранилище и в остальной части бизнес-логики внутри контроллера. Но если есть большая сложная логика, создайте класс провайдера и сделайте там. См. Документы для поставщиков здесь .

Мы также создали стартовый проект котельной пластины на github, чтобы помочь таким участникам сообщества, как вы, начать работу с некоторыми базовыми вещами. Большая часть вышеупомянутого материала реализована там. Вы можете просто клонировать его, изменить удаленный URL и все готово к работе. Взгляните здесь .

...