2012-02-25 24 views
5

Tôi muốn sử dụng PostgreSQL ở phía máy khách. điều đó có thể không? tôi có thể có mã này không?Tôi có thể sử dụng PostgreSQL (pg) ở phía máy khách (express/node.js)

trong server.js tôi

var pg = require('pg'); 

ở phía khách hàng của tôi

 var conString = "postgres://postgres:[email protected]/mydb"; 
    var client = new pg.Client(conString); 
    client.connect(); 
    var query = client.query("SELECT * FROM users ");   
    query.on('row', function(row) { 
      alert(row.name); 
    }); 

tôi đã cố gắng mã này, nhưng không có gì xảy ra. mặc dù tôi có thể có một mã tương tự như thế này, nơi tôi kết nối PostgreSQL và sử dụng các truy vấn trên các kịch bản máy khách.

+5

Điều này sẽ là một rủi ro bảo mật rất lớn. Bạn sẽ nhận được dữ liệu trên backend và chuyển nó cho khách hàng. – birryree

+0

Bạn có gặp bất kỳ lỗi nào ở phía máy khách hoặc phía máy chủ không? –

Trả lời

5

Không, đó là (hiển nhiên) không thể thực hiện được. Bạn sẽ không muốn để cho một khách hàng truy cập cơ sở dữ liệu của bạn trực tiếp anyway. Bên cạnh đó, mặc dù bạn sử dụng JS ở cả phía máy khách và phía máy chủ, nó không khác với những gì xảy ra nếu bạn sử dụng ví dụ: PHP hoặc Python trên máy chủ - giao tiếp duy nhất giữa nó có thể thông qua AJAX và các yêu cầu http thông thường.

+1

cảm ơn thông tin. Tôi chỉ nhận ra rằng nó sẽ rất dễ dàng để hack các trang web nếu bạn sẽ cho phép khách hàng sử dụng cơ sở dữ liệu. –

+1

CouchApps có khách hàng truy cập trực tiếp vào cơ sở dữ liệu, nó không phải là không an toàn nếu bạn có xác nhận hợp lệ được đưa vào cơ sở dữ liệu của bạn. – Raynos

+2

Có lẽ ai đó nên khai sáng cho tôi về lý do tại sao điều này thật hiển nhiên? Và tại sao bạn không bao giờ cho phép khách hàng kết nối với cơ sở dữ liệu của bạn, giả sử cơ sở dữ liệu của bạn yêu cầu xác thực? Có vẻ như một sự giả định hợp lý với tôi. – adamwong246

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