Windows 7のNode.jsからOracleデータベースに接続しようとしています。これは可能ですか?Windowsでこれを行うNode.jsのプラグインが見つかりません。このための推奨される回避策はありますか?WindowsでNode.jsを使用したいと考えており、Oracleに接続する必要がある人が少なくとも1人いると思います。必要に応じて、簡単な回避策を用意しています。助けてくれてありがとう。
5 に答える
Node.jsからoracleに直接接続する必要がありますか?データベーストランザクションを別の言語で記述し、Webサービスを介してNode.jsに公開することができます。
Oracleoracledbによって作成されたドライバーがありますhttp://www.oracle.com/technetwork/database/database-technologies/node_js/oracle-node-js-2399407.html
更新:Oracleは、nodejsアプリケーションがWindows上のoracleDBに接続できるようにするGITnode-oracledb
上のドライバーをリリースしました。
Windows上のnode.jsのデータベースドライバーの状態は、ADO.NETで何年にもわたって利用可能であった堅牢で高性能なデータベースドライバーと比較すると、やや未成熟のようです。
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を含むフォルダーにある必要があることに注意してください。)
http://github.com/mariano/node-db-oracleこのプロジェクトは、nodejsにOracleサポートを追加することを目的としています
編集:node-oracleと呼ばれるOracleによるOracle用のofficenodejsドライバーがあります
https://blogs.oracle.com/opal/entry/introducing_node_oracledb_a_node
このドライバーはウィンドウで動作します:https ://npmjs.org/package/oracle
スタックオーバーフローに関するあなたと同様の質問: WindowsプラットフォームでNode.jsをOracleに接続する