2012-04-04 87 views
6

我想從Windows 7中的Node.js連接到Oracle數據庫。這可能嗎?我還沒有找到Node.js的插件,它可以爲Windows做到這一點。有沒有推薦的解決方法呢?我猜測至少有一個人希望在Windows上使用Node.js並需要連接到Oracle。如果這是必要的,我願意接受簡單的解決方法。謝謝您的幫助。使用Node.js連接到Oracle數據庫Windows

+0

一個簡單的解決辦法是使用C++ Oracle驅動程序並暴露訪問。它作爲一個C++擴展到節點 – Raynos 2012-04-04 19:19:27

+0

你有推薦的資源嗎?我懷疑我必須這樣做,但我正在尋找指導。感謝您的評論。 – 2012-04-04 19:25:08

+0

竊取[類似項目]的源代碼(https://github.com/gfosco/tsqlftw) – Raynos 2012-04-04 19:27:00

回答

2

你需要直接從Node.js連接到oracle嗎?您可以用另一種語言編寫數據庫事務,並通過Web服務將它們展示給Node.js。

+0

理想情況下,我會直接從Node.js連接到Oracle。如果這不可行,我想知道最簡單的解決方法。我不確定如何用另一種語言編寫交易會起作用。如果有關於如何做到這一點的例子,我很樂意看到它。 – 2012-04-05 04:40:21

+0

我認爲最簡單的解決方案是使用另一種具有更多支持的語言來創建數據提供者。我將嘗試編譯一個本地模塊,並發現這個鏈接是一個很好的起點:https://github.com/saary/node.net – 2012-04-05 13:52:05

1

有甲骨文作出了司機OracleDB的http://www.oracle.com/technetwork/database/database-technologies/node_js/oracle-node-js-2399407.html

UPDATE: 甲骨文已經發布了GIT一個node-oracledb驅動程序,將允許應用程序的NodeJS連接到Oracle數據庫上的窗口。

+1

嗨,歡迎來到SO!請提供一些示例代碼或詳細說明您的答案:鏈接式答案在超鏈接死亡時往往變得陳舊。還有什麼可以添加到你的答案來提供一些上下文? – 2015-06-12 18:56:19

1

Windows上的node.js的數據庫驅動程序的狀態似乎有些不成熟,這與我們在ADO.NET中可用的穩健且高性能的數據庫驅動程序相比已有多年。

我會認真考慮使用Edge來調用C#或一個CLR程序集進程來訪問你的數據庫。您可以在C#中編寫Repository樣式的數據訪問層,並從node.js中調用它。

我已經證明這個工作在C#,PetaPoco(可選),.NET 4.5和Oracle ODP驅動程序(Oracle.DataAccess.dll)的開發環境中。這也適用於任何你可以在.NET中使用的數據庫。

節點(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); 
}); 

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