我正在尝试在Windows 7上从Node.js连接到Oracle数据库。这是可能的吗?我没有找到适用于Windows的Node.js插件可实现此功能。是否有任何推荐的解决办法?我猜想至少有其他一个想在Windows上使用Node.js并需要连接Oracle的人。如果必要,我可以接受简单的解决方案。感谢您的帮助。
我正在尝试在Windows 7上从Node.js连接到Oracle数据库。这是可能的吗?我没有找到适用于Windows的Node.js插件可实现此功能。是否有任何推荐的解决办法?我猜想至少有其他一个想在Windows上使用Node.js并需要连接Oracle的人。如果必要,我可以接受简单的解决方案。感谢您的帮助。
您是否需要直接从Node.js连接到Oracle?您可以使用另一种语言编写数据库事务,并通过Web服务将其暴露给Node.js。
与ADO.NET多年来提供的强大和高性能的数据库驱动程序相比,Windows上用于node.js的数据库驱动程序似乎还不够成熟。
我会认真考虑使用Edge来调用C#或CLR程序集以在进程中访问您的数据库。您可以使用C#编写Repository样式的数据访问层,并从node.js调用它。
我已经在开发环境中使用了C#,PetaPoco(可选),.NET 4.5和Oracle ODP驱动程序(Oracle.DataAccess.dll)证明了这一点。这也应该适用于任何您可以在.NET中访问的数据库。
Node(server.js)调用.NET CLR函数的示例:
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);
});
获取数据的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制作的驱动程序oracledb http://www.oracle.com/technetwork/database/database-technologies/node_js/oracle-node-js-2399407.html
更新:
Oracle在GIT上发布了一个node-oracledb
驱动程序,可以让nodejs应用程序连接到Windows上的Oracle数据库。
这个驱动程序适用于Windows:https://npmjs.org/package/oracle
在Stack Overflow上有一个类似于您的问题: 如何在Windows平台上连接Node.js和Oracle数据库
http://github.com/mariano/node-db-oracle 该项目旨在为nodejs添加oracle支持
编辑: 现在有一个由Oracle称为node-oracle的官方nodejs驱动程序可用。
https://blogs.oracle.com/opal/entry/introducing_node_oracledb_a_node