与NodeJS和ExpressJS的Oracle连接

时间:2014-05-14 11:36:24

标签: node.js oracle npm

我正在尝试将oracle与NodeJS连接起来。步骤如下。除了NodeJS(0.10.25)和npm(1.3.24)之外,没有安装客户端的先决条件。

在我的ExpressJS项目中:

  • npm install db-oracle
    安装时没有发现错误。

  • 在app.js

    var oracle = require('db-oracle');
    var connString = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxx)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=xxxx)))";
    var connectData = { "tns": connString, "user": "XPPS_OWNER", "password": "Ex3ec" };
    
  • 在我编码的其中一个端点中,

    app.get('/oracleendpoint',function(req,res){
    connectData.connect(function(error) {
      if (error) {
        return console.log("CONNECTION ERROR: " + error);
      }
    
    this.query().select('*').from('Users').execute(function(error, rows) {
        if (error) {
            return console.log('ERROR: ' + error);
        }
        console.log(rows.length + ' ROWS');
       });
    });
    });
    

预期输出是连接数据库。

仅供参考:数据库实例正常运行。

查询:

  • 什么是数据库名称?
  • 显示如下所示的错误。什么是根本原因?

    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> 
    (C:\xampp\htdocs\mytest\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)
    

请告知我们所需的任何缺失或安装或所需的任何节点模块或代码更改。我用谷歌搜索但是徒劳无功。 Haven找不到适合此错误的文档。

2 个答案:

答案 0 :(得分:1)

Oracle本身刚刚发布了针对node.js的Oracle驱动程序:https://blogs.oracle.com/opal/entry/introducing_node_oracledb_a_node

看起来很有希望。

答案 1 :(得分:0)

在您的示例中,您使用db-oracle模块,我建议使用node-oracle模块,因为它更受欢迎/更好地维护。

要从Node连接到Oracle DB,您必须按照上述页面上的说明进行操作。