如何在用户浏览器上实现node-postgres?

所以我testing了这个特殊的例子在我的本地机器上:
http://bjorngylling.com/2011-04-13/postgres-listen-notify-with-node-js.html

有效! 所以现在当我更新一个特定的表,并运行我的node.js文件(从教程) – 我得到我的terminal(mac)的即时通知! 凉!

但是,我如何实现这个客户端的浏览器?

首先,在node.js脚本中,您将注意到我必须使用我的用户名和密码连接到数据库:

pgConnectionString = "postgres://username:pswd@localhost/db"; 

我显然不能在.js文件中下载用户的浏览器。

另外,我甚至不知道我要在<head>包含哪些脚本。 我在任何地方都找不到如何在真实世界中使用它……我所看到的只是在命令行中可以使用的整齐的小例子。

任何build议,或在正确的方向指导将是真棒! 谢谢。

你不能。

Node.js直接在您的服务器上运行,直接与该机器上的本地库进行通信。 我不确定你正在使用的是什么postgres驱动程序,但要么是与postgres库对话,要么是直接使用本地或远程数据库服务器上的套接字。

这两种方法都不能直接从浏览器环境中使用(它不能直接与本地库直接对话,也不能说“原始”套接字)。

你可以做的是让Web客户端在服务器上运行你自己的服务器进程(运行node.js或类似的),然后代表客户端与数据库对话。

假设您还需要数据库服务器才能向客户端发起通知,则需要使用像socket.io或类似的双向通信模块。

你可以这样做:将你的JS运行在Node.js上,它使用基于Node.js的WebSocket服务器来访问Postgres监听事件,实现PubSub,并推送到HTML5浏览器。支持WebSocket的。

另一种select是:使用通用的WebSocket到TCP桥,如https://github.com/kanaka/websockify,并在JS中实现Postgres客户端协议以在浏览器中运行&#x3002; 这是可行的,但可能不容易/对于胆小的人来说。