我想知道是否有可能使用node.js窗口之间发送数据

我的目标是使情景如下:

1) User opens myapp.com in Window A 2) User clicks button which opens myapp.com/doWork in Window B 3) After performing some operations and retrieving data (requiring user input), Window B closes 4) Window A displays the data retrieved from Window B 

这是可能的使用node.js? 我意识到一个简单的解决scheme就是把所有的一切都在一个窗口中完成。 我使用快递/句柄。

您应该检查出Socket.io ,它可以在您的Node.js服务器和所有浏览您网页的浏览器客户端之间进行实时通信。

在你的特殊情况下,在窗口Bclosures之前,服务器应该用新的数据向客户端发送消息。 客户端代码将能够用新信息更新网页。

如果您正在寻找一个准系统解决scheme,请查看WebSockets API (哪个Socket.io摘要)。 如果你想使用一个为实时应用程序构build的完整框架,请查看Meteor (显然,这需要更多的代码修改)。

实际上你不需要在服务器上执行它。
据我所见,你的两个窗口在相同的主机/域(包括相同的端口和子域)上打开,

这意味着两个窗口都可以在客户端与另一方“交谈”。
windowB具有window.opener属性。

所以在windowB中发生了什么,在任何时候你都可以告诉windowA发生了什么,就像这样。

在windowB中

 window.opener.setData(myResult); // window.opener == windowA 

要么

 window.opener.myGlobalNamespaceObject.property = myResult 

另一个解决scheme是使用cookies或localStorage。
实际上localStorage触发一个事件,当数据已经设置(见这个问题: localStorage eventHandler不会被调用 )

如果你不共享相同的域,请使用socket.io作为其他答案指出。