Как вызвать пользовательскую функцию из postgresql, используя возражение js knex js

#node.js #objection.js #knexjs

#node.js #objection.js #knex.js

Вопрос:

Я создаю api, используя hapi js и postgresql с возражением ORM js (knexjs). Я создаю собственную функцию в postgresql с двумя аргументами. Когда я пытаюсь вызвать свою функцию, используйте возражение .raw , это не работает. Это один из кодов, которые я пробовал, и он не работает:

 let _data = await Model.knex().raw('select * from fn_user_profiling('  Model.knex().raw('??', ['840018']).toString()  ', '   Model.knex().raw('??', ['human capital']).toString()   ')');
  

Это ошибка при запуске кода:

 select * from fn_user_profiling("840018", "human capital") - column "840018" does not exist
  

Я пытаюсь следовать этой ссылке, но у меня это не работает.

Я надеюсь, что advance поможет дать ответ или подсказку для решения этой проблемы.

Большое вам спасибо.

Комментарии:

1. 840018 ваше имя столбца или значение

2. Значение для моего первого аргумента в функции postgresql.

Ответ №1:

Я нашел ответ. Я использую objectionjs для вызова knex raw.

 let _data = await Model.knex().raw('select * from function_name(?, ?)', [arg_1, arg_2]);
  

Я надеюсь, что это может кому-то помочь.

Комментарии:

1. Использовал ваше решение. получил это. calling knex without a tableName is deprecated. Use knex.queryBuilder() instead. (node:18) UnhandledPromiseRejectionWarning: TypeError: databaseProvider.knex(...).raw is not a function