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

时间:2012-06-15 05:33:26

标签: postgresql node.js websocket socket.io node-postgres

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

有效!所以现在我更新一个特定的表,并运行我的node.js文件(从教程) - 我在我的终端上获得即时通知(mac)!酷!

但是如何在客户端的浏览器上实现它?

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

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

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

另外,我甚至不知道我必须在<head>中包含哪些脚本。我无法在现实世界中找到任何关于如何使用它的任何内容....我所看到的只是你可以在命令行中使用的简洁小例子。

任何有关正确方向的建议或指导都会很棒!谢谢。

3 个答案:

答案 0 :(得分:3)

你不能。

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

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

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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