7

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

4

5 回答 5

2

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

于 2012-04-04T22:59:38.290 回答
1

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

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

于 2015-06-12T18:48:37.950 回答
1

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

我会认真考虑使用Edge在进程中调用 C# 或 CLR 程序集来访问您的数据库。您可以在 C# 中编写存储库样式的数据访问层并从 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 的文件夹中的 node.exe.config 中):

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 的文件夹中。)

于 2015-10-08T02:09:11.440 回答
0

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

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

于 2013-09-20T10:23:30.777 回答
0

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

于 2012-04-12T21:14:08.503 回答