【问题标题】:Can I use PostgreSQL (pg) in the client-side (express/node.js)我可以在客户端使用 PostgreSQL (pg) (express/node.js)
【发布时间】:2012-03-15 17:46:57
【问题描述】:

我想在客户端使用 PostgreSQL。那可能吗?可以给我这个代码吗?

在我的 server.js 中

   var pg = require('pg');

在我的客户端

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

我尝试了这段代码,但什么也没发生。虽然我可以有一个与此类似的代码,我在其中连接 PostgreSQL 并在客户端脚本上使用查询。

【问题讨论】:

  • 这将是一个巨大的安全风险。您应该在后端获取数据并将其传递给客户端。
  • 您是否在客户端或服务器端遇到任何错误?

标签: javascript postgresql node.js express


【解决方案1】:

不,这(显然)不可能。无论如何,您都不想让客户直接访问您的数据库。除此之外,即使您在客户端和服务器端都使用 JS,这与使用例如服务器上的 PHP 或 Python - 它之间的唯一通信可以通过 AJAX 和常规 http 请求进行。

【讨论】:

  • 感谢您的信息。我刚刚意识到,如果您允许客户端使用数据库,那么破解网站将非常容易。
  • CouchApps 让客户端直接访问数据库,如果您在数据库中进行了适当的验证,这并不是不安全的。
  • 也许有人应该告诉我为什么这如此明显?假设您的数据库需要身份验证,为什么您永远不允许客户端连接到您的数据库?对我来说似乎是一个合理的假设。
  • 身份验证是访问的一个方面。我们还需要获得适当的授权。使用基本 DBMS 功能实现授权并不容易,而且通常甚至可能无法提供满足业务需求的必要功能。
  • @Amitabh 这基本上不是真的。我可能希望允许对我的数据库进行直接只读访问。如果没有这个特性,我必须实现一个瘦代理,它应该被开发、测试、交付和维护,因为数据库不支持直接 HTTP 调用。
猜你喜欢
  • 2020-11-14
  • 1970-01-01
  • 2017-06-26
  • 2020-07-11
  • 2021-03-29
  • 1970-01-01
  • 2020-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多