2012-04-04 18 views
6

Ich versuche, eine Verbindung zu einer Oracle-Datenbank von Node.js in Windows 7 herzustellen. Ist das möglich? Ich habe kein Plugin für Node.js gefunden, das dies für Windows tun wird. Gibt es dafür empfohlene Arbeitsumgebungen? Ich vermute, es gibt mindestens eine andere Person, die Node.js unter Windows verwenden möchte und sich mit Oracle verbinden muss. Ich bin offen für einfache Problemumgehungen, wenn dies notwendig ist. Danke für die Hilfe.Verbinden mit Oracle-Datenbank mit Node.js Windows

+0

eine einfache Arbeit um einen C++ Oracle-Treiber und den Zugang auszusetzen. es als eine C++ Erweiterung zu Knoten – Raynos

+0

Haben Sie irgendwelche empfohlenen Ressourcen dafür? Ich vermute, dass ich so etwas tun muss, aber ich suche Führung. Danke für den Kommentar. –

+0

Stehlen Sie den Quellcode von [ähnliche Projekte] (https://github.com/gfosco/tsqlftw) – Raynos

Antwort

2

Müssen Sie direkt von Node.js zu Oracle verbinden? Sie könnten Ihre Datenbanktransaktionen in einer anderen Sprache schreiben und sie über einen Webservice Node.js zur Verfügung stellen.

+0

Idealerweise würde ich direkt von Node.js eine Verbindung zu Oracle herstellen. Wenn dies nicht möglich ist, würde ich gerne die einfachste Problemumgehung kennen. Ich bin mir nicht sicher, wie das Schreiben der Transaktionen in einer anderen Sprache funktionieren würde. Wenn es ein Beispiel dafür gibt, würde ich es gerne sehen. –

+0

Ich habe die einfachste Lösung wäre, einen Datenanbieter mit einer anderen Sprache zu erstellen, die mehr Unterstützung hat. Ich werde versuchen, ein natives Modul zu kompilieren und diesen Link als einen guten Ausgangspunkt zu finden: https://github.com/saary/node.net –

1

ein Treiber von Oracle gemacht ist OracleDb http://www.oracle.com/technetwork/database/database-technologies/node_js/oracle-node-js-2399407.html

UPDATE: Oracle einen node-oracledb Treiber auf GIT veröffentlicht, die einer NodeJS Anwendung ermöglicht Oracle DB auf Windows zu verbinden.

+1

Hallo, willkommen bei SO! Bitte geben Sie einen Beispielcode an oder erläutern Sie Ihre Antwort: Link-Only-Antworten neigen dazu, abgestanden zu werden, wenn Hyperlinks absterben. Alles andere, was Sie Ihrer Antwort hinzufügen können, um einen Kontext zu schaffen? –

1

Der Status der Datenbanktreiber für node.js unter Windows scheint im Vergleich zu den robusten und hoch performanten Datenbanktreibern, die wir seit Jahren in ADO.NET zur Verfügung haben, etwas unausgereift zu sein.

Ich würde ernsthaft in Betracht ziehen, mit Edge C# oder eine CLR-Assembly in Bearbeitung für den Zugriff auf Ihre Datenbank aufzurufen. Sie könnten eine Datenzugriffsschicht Repository in C# schreiben und von node.js aus aufrufen.

Ich habe bewiesen, dass dies in einem Entwicklungskontext mit C#, PetaPoco (optional), .NET 4.5 und dem Oracle ODP-Treiber (Oracle.DataAccess.dll) funktioniert. Dies sollte auch mit jeder Datenbank funktionieren, mit der Sie in .NET kommunizieren können.

Node (server.js) Beispiel .NET CLR-Funktion aufzurufen:

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# sieht wie folgt aus (beachten Sie die Verbindungszeichenfolge in node.exe.config im Ordner setzen müssen, die enthält node.exe):

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

(Beachten Sie, dass Oracle.DataAccess.dll im Ordner sein muss, die node.exe enthält)

Verwandte Themen