2012-04-04 39 views
6

Tôi đang cố gắng kết nối với cơ sở dữ liệu Oracle từ Node.js trong Windows 7. Điều này có khả thi không? Tôi đã không tìm thấy một plugin cho Node.js mà sẽ làm điều này cho Windows. Có bất kỳ công việc được đề nghị nào cho việc này không? Tôi đoán có ít nhất một người khác muốn sử dụng Node.js trên Windows và cần kết nối với Oracle. Tôi đang mở để giải quyết đơn giản nếu đó là cần thiết. Cảm ơn đã giúp đỡ.Kết nối với cơ sở dữ liệu Oracle với Node.js Windows

+0

một tác phẩm đơn giản xung quanh đang sử dụng một trình điều khiển C++ oracle và phơi bày truy cập vào. nó như là một phần mở rộng C++ đến nút – Raynos

+0

Bạn có bất kỳ tài nguyên được đề xuất nào để thực hiện điều đó không? Tôi nghi ngờ tôi sẽ phải làm một cái gì đó như thế nhưng tôi đang tìm kiếm sự hướng dẫn. Cảm ơn bạn đã bình luận. –

+0

Ăn cắp mã nguồn của [dự án tương tự] (https://github.com/gfosco/tsqlftw) – Raynos

Trả lời

2

Bạn có cần kết nối trực tiếp từ Node.js tới oracle không? Bạn có thể viết các giao dịch cơ sở dữ liệu của mình bằng ngôn ngữ khác và hiển thị chúng cho Node.js thông qua dịch vụ web.

+0

Lý tưởng nhất là tôi sẽ kết nối trực tiếp với Oracle từ Node.js. Nếu điều này là không khả thi tôi muốn biết cách giải quyết dễ nhất. Tôi không chắc cách viết các giao dịch bằng ngôn ngữ khác sẽ hoạt động. Nếu có một ví dụ về làm thế nào để làm điều này, tôi rất muốn nhìn thấy nó. –

+0

Tôi đã giải pháp dễ nhất là tạo nhà cung cấp dữ liệu bằng một ngôn ngữ khác có hỗ trợ nhiều hơn. Tôi sẽ cố gắng biên dịch một mô-đun gốc và tìm thấy liên kết này là một điểm khởi đầu tốt: https://github.com/saary/node.net –

1

Có một trình điều khiển được thực hiện bởi Oracle oracledb http://www.oracle.com/technetwork/database/database-technologies/node_js/oracle-node-js-2399407.html

UPDATE: Oracle đã phát hành một tài xế node-oracledb trên GIT mà sẽ cho phép một ứng dụng nodejs để kết nối với oracle DB trên cửa sổ.

+1

Xin chào, chào mừng bạn đến với SO! Vui lòng cung cấp một số mã ví dụ hoặc xây dựng trên câu trả lời của bạn: các câu trả lời chỉ có liên kết có xu hướng trở thành cũ khi các siêu liên kết chết. Bất cứ điều gì khác bạn có thể thêm vào câu trả lời của bạn để cung cấp một số bối cảnh? –

1

Trạng thái trình điều khiển cơ sở dữ liệu cho node.js trên Windows dường như hơi chưa trưởng thành so với trình điều khiển cơ sở dữ liệu mạnh mẽ và hiệu suất cao mà chúng tôi đã có sẵn trong ADO.NET trong nhiều năm.

Tôi sẽ cân nhắc nghiêm túc việc sử dụng Edge để gọi C# hoặc lắp ráp CLR đang trong quá trình truy cập cơ sở dữ liệu của bạn. Bạn có thể viết lớp truy cập dữ liệu kiểu Repository trong C# và gọi nó từ node.js.

Tôi đã chứng minh điều này hoạt động trong bối cảnh phát triển với C#, PetaPoco (tùy chọn), .NET 4.5 và trình điều khiển ODP Oracle (Oracle.DataAccess.dll). Điều này cũng sẽ làm việc với bất kỳ cơ sở dữ liệu nào mà bạn có thể nói đến trong .NET.

Node (server.js) ví dụ để gọi hàm .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# trông như thế này (lưu ý bạn cần phải đặt chuỗi kết nối của bạn trong node.exe.config trong thư mục có chứa node.exe):

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

(Lưu ý rằng Oracle.DataAccess.dll cần phải được trong thư mục có chứa node.exe)

Các vấn đề liên quan