#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