直接从纯JS(浏览器)联系Postgres数据库



假设我有一个远程Postgres数据库:

postgres://<user>:<passwd>@foo.us-west-1.compute.amazonaws.com:5432/<dbname>
连接到该数据库的通常方法是启动后端服务器,并使用SQL库通过该服务器发送请求。但是,我想知道是否有可能使用纯JS从浏览器环境直接连接到DB,例如使用fetch

我试了几样东西,但似乎都不起作用。

  • fetch("postgres://<user>:<passwd>@foo.us-west-1.compute.amazonaws.com:5432/<dbname>")
    
    给出URL scheme "postgres" is not supported
  • fetch("http://foo.compute-1.amazonaws.com:5432/<dbname>")
    
    给出net::ERR_EMPTY_RESPONSE
  • fetch("https://foo.compute-1.amazonaws.com:5432/<dbname>")
    
    返回net::ERR_CONNECTION_CLOSED.

我想我需要把凭据在我的请求某处,但我不确定把它们放在哪里。

fetch工作在HTTP层,而Postgres本身不支持HTTP通信。因此,直接从浏览器查询数据库是不可能的。

然而,你可以配置一些工具,比如Postgrest,它可以在你的DB层顶部创建一个HTTP接口,你可以使用它来与DB通信。

如果你使用的是像AWS RDS这样的托管数据库,那么你可以使用他们的sdk从浏览器获取数据。

相关内容

  • 没有找到相关文章

最新更新