1

所以我在我的本地机器上测试了这个特定的例子: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>. 我在任何地方都找不到关于如何在现实世界中使用它的任何东西……我所看到的只是可以在命令行中使用的简洁的小示例。

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

4

3 回答 3

3

你不能。

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

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

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

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

于 2012-06-15T05:59:44.330 回答
0

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

于 2012-06-15T11:43:06.893 回答
0

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

于 2012-06-15T11:45:18.827 回答