Ошибка: при компиляции SELECT с книжной полки обнаружены неопределенные привязки. js save () - PullRequest
0 голосов
/ 15 февраля 2020

При тестировании вставки модели Книжная полка с использованием клиента oracledb (версии ниже), у меня странная ошибка. Я тестировал один и тот же код с mysql, pg и sqlite3 клиентами без проблем в этой операции.

Моя модель такая :

    Promotion = bookshelf.model('Promotion', {
          tableName: 'promotions'     
    })

И действие, которое вызвало ошибку, выглядит так:

Promotion.forge({image:"image","featured":false,"price":"2.33","name":"name","description":"description"}).save(null, { method:'insert' })

Кажется, что вставка выполнена и зафиксирована в базе данных, но клиент возвращает эту ошибку:

(node:1098008) UnhandledPromiseRejectionWarning: Error: Undefined binding(s) detected when compiling SELECT. Undefined 
column(s): [promotions.id] query: select * from (select "promotions".* from "promotions" where "promotions"."image" = ?
 and "promotions"."featured" = ? and "promotions"."price" = ? and "promotions"."name" = ? and "promotions"."description
" = ? and "promotions"."id" = ?) where rownum <= ?                                                                     
    at Oracledb_Compiler.toSQL (/home/user/src/tests/app/api/node_modules/knex/lib/query/compiler.js:101:13)
    at Builder.toSQL (/home/user/src/tests/app/api/node_modules/knex/lib/query/builder.js:77:44)
    at /home/user/src/tests/app/api/node_modules/knex/lib/runner.js:30:36
    at /home/user/src/tests/app/api/node_modules/knex/lib/runner.js:253:24
    at tryCatcher (/home/user/src/tests/app/api/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/home/user/src/tests/app/api/node_modules/bluebird/js/release/promise.js:547:31)
    at Promise._settlePromise (/home/user/src/tests/app/api/node_modules/bluebird/js/release/promise.js:604:18)
    at Promise._settlePromise0 (/home/user/src/tests/app/api/node_modules/bluebird/js/release/promise.js:649:10)
    at Promise._settlePromises (/home/user/src/tests/app/api/node_modules/bluebird/js/release/promise.js:729:18)
    at _drainQueueStep (/home/user/src/tests/app/api/node_modules/bluebird/js/release/async.js:93:12)
    at _drainQueue (/home/user/src/tests/app/api/node_modules/bluebird/js/release/async.js:86:9)
    at Async._drainQueues (/home/user/src/tests/app/api/node_modules/bluebird/js/release/async.js:102:5)
    at Immediate.Async.drainQueues (/home/user/src/tests/app/api/node_modules/bluebird/js/release/async.js:15:14)
    at processImmediate (internal/timers.js:439:21)
    at process.topLevelDomainCallback (domain.js:130:23)
(node:1098008) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing 
inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)

Использование этой версии:

  • книжная полка 1.1.0 (также проверено 1.0.1 с той же ошибкой)
  • knex 0,20,9 (также 0,20,8)
  • oracledb 4.2.0

Большое спасибо за вашу помощь заранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...