过去几周我一直在尝试从我的 nodejs 代码连接 oracle db。到目前为止,我发现的是 2 个主要库,例如https://github.com/mariano/node-db-oracle已过时(上次更新是一年前),第二个是https://github.com/ Nearinfinity/node-oracle确实是最新的,但是我没有设法将 oracle 与这些模块中的任何一个连接起来。
npm install oracle //pr db-oracle 因以下原因而失败的市长问题
../src/connection.h:10:18: fatal error: occi.h: No such file or directory
我试图克隆代码并执行本地安装,然后将整个模块复制到我的项目下,安装好,但是当我将模块放在我的项目下时,我遇到了这个错误
module.js:340
throw err;
^
Error: Cannot find module './build/Release/oracle_bindings'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/var/www/node-test/node_modules/db-oracle/db-oracle.js:18:15)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
我一直在遵循两个驱动程序的安装过程,并设置了像这样的变量(/var/environment)
OCI_HOME=/opt/instantclient_12_1
OCI_VERSION=12
OCI_INCLUDE_DIR=/opt/instantclient_12_1/sdk/include
OCI_LIB_DIR=/opt/instantclient_12_1
LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client/lib
我使用的是 ubuntu 12.04,节点版本是 v0.10.18 这是我的示例 nodejs 测试文件:
var oracle = require('oracle');
new oracle.Database({
hostname: 'myserver.com',
port: 1521,
user: 'myuser',
password: 'mypass',
database: 'XE'
}).connect(function(error) {
if (error) {
return console.log("CONNECTION ERROR: " + error);
}
this.query("select * FROM `store`").execute(function(error, rows) {
if (error) {
return console.log('ERROR: ' + error);
}
console.log(rows.length + ' ROWS');
});
});
任何额外的提示都会很好。我尝试了 noradle ( https://github.com/kaven276/noradle ),这对于我的目的来说似乎太重了。