Loopback 4, запрос с SQLQuery с коннектором postgres - PullRequest
0 голосов
/ 16 ноября 2018

Вот как я определил свой репозиторий, следуя очень общему примеру, приведенному в документации обратной петли: -

import {DefaultCrudRepository, juggler} from '@loopback/repository';
import {AModel} from '../models';
import {TimeseriesDataSource} from '../datasources';
import {inject} from '@loopback/core';

export class AModelRepository extends DefaultCrudRepository<
  AModel,
  typeof AModel.prototype.id
> {
  constructor(
    @inject('datasources.timeseries') dataSource: TimeseriesDataSource,
  ) {
    super(AModel, dataSource);
  }
}

Я надеялся, что если сделать AModelRepository.execute(sql, null, cb), это сработает. Но ошибка его выдачи - Error: Not implemented

Любая помощь высоко ценится.

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

LoopBack 4 пока не поддерживает действие execute. Недавно мы обсуждали это ограничение в выпуске № 2053 . См. мой комментарий для некоторых идей о том, как обойти текущие ограничения. Я открыл запрос на извлечение, чтобы добавить dataSource.execute API на основе обещаний в loopback-datasource-juggler, см. https://github.com/strongloop/loopback-datasource-juggler/pull/1671. Как только это изменение будет найдено и выпущено, реализация DefaultCrudRepository.prototype.execute() станет тривиальной.

Мы приветствуем участие сообщества, было бы здорово, если бы вы могли внести реализацию execute в loopback-next самостоятельно. См. Руководство для участников , чтобы начать.

0 голосов
/ 16 ноября 2018

Каким-то образом я заработал, введя источник данных, подобный этому

    export class SomeController {
      constructor(
        @repository(SomeRepository) public someRepository: SomeRepository,
        @inject('datasources.timeseries') public dataSource: timeseriesDataSource,
      ) {}
      someMethod(){
         this.dataSource.connector.execute(sql, params, cb)
       }

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

...