Ошибка: NJS-045: не удается загрузить двоичный файл надстройки oracledb для Node.js 10.17.0 (linux, x64)

Я обновляю свои лямбда-функции aws до новой среды выполнения узла 10.x с версии 8.11. Для этого я обновил существующие двоичные файлы оракула (node-oracledb 1.13.1) до (node-oracledb 4.1.0) и опубликовал пакет в реестре npm. После обновления [email protected] я получаю следующую ошибку, когда одна из лямбда-функций пытается вставить данные в oracle db.

> "errorType": "Error",
>     "errorMessage": "NJS-045: cannot load the oracledb add-on binary for Node.js 10.17.0 (linux, x64)\nCannot load
> /var/task/node_modules/polaris-oracledbtest-4-lambda/build/Release/oracledb.node\nThe
> module
> '/var/task/node_modules/polaris-oracledbtest-4-lambda/build/Release/oracledb.node'\nwas
> compiled against a different Node.js version
> using\nNODE_MODULE_VERSION 57. This version of Node.js
> requires\nNODE_MODULE_VERSION 64. Please try re-compiling or
> re-installing\nthe module (for instance, using `npm rebuild` or `npm
> install`).\nNode-oracledb installation instructions:
> https://oracle.github.io/node-oracledb/INSTALL.html\nYou must have
> 64-bit Oracle client libraries in LD_LIBRARY_PATH, or configured with
> ldconfig.\nIf you do not have Oracle Database on this computer, then
> install the Instant Client Basic or Basic Light package from
> \nhttp://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html\n",
>     "stack": [
>         "Error: NJS-045: cannot load the oracledb add-on binary for Node.js 10.17.0 (linux, x64)",
>         "Cannot load /var/task/node_modules/polaris-oracledbtest-4-lambda/build/Release/oracledb.node",
>         "The module '/var/task/node_modules/polaris-oracledbtest-4-lambda/build/Release/oracledb.node'",
>         "was compiled against a different Node.js version using",
>         "NODE_MODULE_VERSION 57. This version of Node.js requires",
>         "NODE_MODULE_VERSION 64. Please try re-compiling or re-installing",
>         "the module (for instance, using `npm rebuild` or `npm install`).",
>         "Node-oracledb installation instructions: https://oracle.github.io/node-oracledb/INSTALL.html",
>         "You must have 64-bit Oracle client libraries in LD_LIBRARY_PATH, or configured with ldconfig.",
>         "If you do not have Oracle Database on this computer, then install the Instant Client Basic or Basic Light package from ",
>         "http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html",
>         "",
>         "    at Object.<anonymous> (/var/task/node_modules/polaris-oracledbtest-4-lambda/lib/oracledb.js:68:13)",
>         "    at Module._compile (internal/modules/cjs/loader.js:778:30)",
>         "    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)",
>         "    at Module.load (internal/modules/cjs/loader.js:653:32)",
>         "    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)",
>         "    at Function.Module._load (internal/modules/cjs/loader.js:585:3)",
>         "    at Module.require (internal/modules/cjs/loader.js:692:17)",
>         "    at require (internal/modules/cjs/helpers.js:25:18)",
>         "    at Object.<anonymous> (/var/task/node_modules/polaris-oracledbtest-4-lambda/index.js:1:18)",
>         "    at Module._compile (internal/modules/cjs/loader.js:778:30)"
>     ]

person Naveen    schedule 11.12.2019    source источник


Ответы (1)


Убедитесь, что вы действительно полностью обновили node-oracledb. Сообщение об ошибке относится к эпохе NAN (до Node-oracledb 4.0), что вызывало тесную связь между бинарный файл node-oracledb и версия Node.js. Вот почему вы получаете сообщения о несовместимости NODE_MODULE_VERSION. В node-oracledb 4 реализация изменилась, чтобы использовать N-API, что позволяет использовать один двоичный файл node-oracledb с несколькими версиями Node.js.

person Christopher Jones    schedule 12.12.2019