【问题标题】:Connecting to Oracle database with Node.js Windows使用 Node.js Windows 连接到 Oracle 数据库
【发布时间】:2012-04-18 13:12:09
【问题描述】:

我正在尝试从 Windows 7 中的 Node.js 连接到 Oracle 数据库。这可能吗?我还没有找到适用于 Windows 的 Node.js 插件。有什么推荐的解决方法吗?我猜至少还有一个人想在 Windows 上使用 Node.js 并且需要连接到 Oracle。如果有必要,我愿意接受简单的解决方法。感谢您的帮助。

【问题讨论】:

  • 一个简单的解决方法是使用 C++ oracle 驱动程序并将对它的访问作为 c++ 扩展节点公开
  • 你有什么推荐的资源来做这件事吗?我怀疑我将不得不做类似的事情,但我正在寻找指导。感谢您的评论。
  • 盗取similar projects的源码
  • 我也遇到过类似的情况,你有什么运气吗?
  • 对不起,我没有。最终我必须做的是让一个 Powershell 脚本将这些数据从数据库中提取出来并将其转储到 CSV 中。然后我让 NodeJS 将数据拉入 MongoDB。很抱歉,我没有更好的消息告诉你。

标签: windows oracle node.js


【解决方案1】:

您需要直接从 Node.js 连接到 oracle 吗?您可以用另一种语言编写数据库事务,并通过 Web 服务将它们公开给 Node.js。

【讨论】:

  • 理想情况下,我会直接从 Node.js 连接到 Oracle。如果这不可行,我想知道最简单的解决方法。我不确定用另一种语言编写交易会如何工作。如果有一个关于如何做到这一点的例子,我很乐意看到它。
  • 我认为最简单的解决方案是使用另一种支持更多的语言创建数据提供者。我将尝试编译一个原生模块,发现这个链接是一个很好的起点:github.com/saary/node.net
【解决方案2】:

与我们多年来在 ADO.NET 中提供的强大且高性能的数据库驱动程序相比,Windows 上的 node.js 数据库驱动程序的状态似乎有些不成熟。

我会认真考虑使用Edge 来调用 C# 或进程中的 CLR 程序集来访问您的数据库。您可以在 C# 中编写一个Repository 样式的数据访问层并从 node.js 中调用它。

我已经证明这在使用 C#、PetaPoco(可选)、.NET 4.5 和 Oracle ODP 驱动程序 (Oracle.DataAccess.dll) 的开发环境中有效。这也应该适用于您可以在 .NET 中与之通信的任何数据库。

调用.NET CLR函数的节点(server.js)示例:

var edge = require('edge');

// define CLR function proxy
var getData = edge.func({
    assemblyFile: '../Repositories/bin/Debug/Repositories.dll',
    typeName: 'Repositories.TestRepository',
    methodName: 'GetData' // This must be Func<object,Task<object>>
});

// call proxy function
getData({ myParam:1 }, function (error, result) {
    if (error) throw error;
    console.log(result);
});

GetData C# 看起来像这样(注意您需要将连接字符串放在 node.exe.config 中包含 node.exe 的文件夹中):

public async Task<object> GetData(object param)
{
    using (var db = new Database("NameOfConnString"))
    {
        return db.Fetch<dynamic>("SELECT * FROM sometable");
    }
}

(请注意,Oracle.DataAccess.dll 需要在包含 node.exe 的文件夹中。)

【讨论】:

    【解决方案3】:

    有Oracle oracledb做的驱动http://www.oracle.com/technetwork/database/database-technologies/node_js/oracle-node-js-2399407.html

    更新: Oracle 在GIT 上发布了一个node-oracledb 驱动程序,它将允许nodejs 应用程序连接到Windows 上的oracle DB。

    【讨论】:

    • 嗨,欢迎来到 SO!请提供一些示例代码或详细说明您的答案:随着超链接的消失,仅链接的答案往往会变得陈旧。您还可以在答案中添加任何其他内容以提供一些上下文吗?
    【解决方案4】:

    此驱动程序适用于 Window:https://npmjs.org/package/oracle

    在 Stack Overflow 上与您的问题类似: Connect Node.js with Oracle on Windows platform

    【讨论】:

      【解决方案5】:

      http://github.com/mariano/node-db-oracle本项目旨在为nodejs添加oracle支持

      编辑: 现在有一个用于 Oracle 的 office nodejs 驱动程序,由 Oracle 称为 node-oracle

      https://blogs.oracle.com/opal/entry/introducing_node_oracledb_a_node

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-11
        • 2012-04-11
        • 2011-11-12
        • 2017-04-06
        • 2013-03-17
        • 1970-01-01
        相关资源
        最近更新 更多