выполнение прямого запроса в контроллере в режиме loopback - PullRequest
0 голосов
/ 26 апреля 2019

Я начал работать в loopback 4. Я создал CRUD-контроллер по умолчанию с базовыми операциями CRUD, которые могут получать «данные таблицы», «запись таблицы для определенного идентификатора» и т. Д. Теперь мне нужно, чтобы я хотелвыполнить мой собственный запрос для этой таблицы.Как написать запрос в контроллере и выполнить его?

/ * ниже приведена функция по умолчанию для получения табличных данных * /

@get('/customers', {
    responses: {
      '200': {
        description: 'Array of customers model instances',
        content: {
          'application/json': {
            schema: {type: 'array', items: {'x-ts-type': Customers}},
          },
        },
      },
    },
  })

  async find(
      @param.query.object('filter', getFilterSchemaFor(Customers)) filter?: Filter,
           : Promise<Customers[]> {
      if (limit > 100) limit = 100; // your logic
      return await this.CustomersRepository.find(filter);
  }

тип кода, который я хочу,

Выполнить (набор данных, sqlstatement);// это доступно?

1 Ответ

2 голосов
/ 29 апреля 2019

Поддержка выполнения необработанных запросов к базе данных была недавно добавлена ​​запросом # 2681 , эта функциональность обеспечивается методом Repository execute.

Обратите внимание, что они запрашивают форматзависит от разъема.Например, если вы используете базу данных MySQL, вы можете написать следующий запрос:

await this.CustomersRepository.execute(
  // the query template, use "?" for variables to AVOID SQL INJECTIONS ATTACKS!
  'SELECT TOP ? * FROM CUSTOMERS',
  // the values to use for variables
  [limit]);
...