Метод pg-обещания для vid-функции PostgreSQL

1

При выполнении функции PostgreSQL, которая RETURNS void, db.none() отклоняет "No return data was expected." ,

Затем я использую метод db.one(), который разрешается с помощью объекта { PS_name: '' }.

Должен ли я ожидать, что функции void PostgreSQL будут фактически возвращать пустой объект? Каким будет наиболее подходящий способ обработки функций void с помощью pg-promise?

Теги:
pg-promise
postgresql-9.1

1 ответ

2
Лучший ответ

Каким будет наиболее подходящий способ обработки функций void с помощью pg-prom?

Метод базы данных proc.

db.proc('proc_name', [param1, param2,...])
    .then(data => {
        /* data = either null or an object */
    })
    .catch(error => {
        /* error */
    });

ОБНОВИТЬ

Как вы указываете типы параметров при использовании proc? т.е. фиксировать function foo(unknown) does not exist? Если я делаю db.proc('foo($1::int2[])', x), то он выдает syntax error at or near "(".

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

db.oneOrNone('SELECT * FROM proc_name($1::int2[], $2, ...)', [param1, param2,...])
    .then(data => {
        /* data = either null or an object */
    })
    .catch(error => {
        /* error */
    });

Метод oneOrNone в этом контексте эквивалентен в ожидании результата методу proc.

  • 0
    proc метод proc инъекций SQL?
  • 1
    @Kathandrax да, это так.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню