Javascript 我想知道是否可以使用node.js在windows之间发送数据

Javascript 我想知道是否可以使用node.js在windows之间发送数据,javascript,node.js,express,handlebars.js,Javascript,Node.js,Express,Handlebars.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 fr

我的目标是实现如下场景:

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可以这样做吗?我意识到一个更简单的解决方案是在一个窗口内完成所有工作。我使用的是express/Handlebar。

您应该退房,这样可以在Node.js服务器和打开网页的所有浏览器客户端之间进行实时通信

在您的特定情况下,在窗口B关闭之前,服务器应该向客户端发送一条包含新数据的消息。客户端代码将能够用新信息更新网页


如果您正在寻找一个简单的解决方案,请查看(which Socket.io abstracts)。如果您想使用为实时应用程序构建的完整框架,请查看(显然,这将需要更多的代码修改)。

实际上您不需要在服务器上执行此操作。
据我所知,您的两个窗口都在同一主机/域上打开(包括相同的端口和子域)

这意味着两个窗口都可以在客户端相互“对话”。
windowB具有该属性的
window.opener
属性

所以在windowB中发生了什么,您可以随时告诉windowA发生了什么,就像这样

在windowB中

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

另一种解决方案是使用cookies或本地存储 实际上,当设置了数据时,localStorage会触发一个事件(请参见以下问题:)


如果您不共享同一个域,请使用socket.io,正如其他答案所指出的那样。

如果您对其进行编辑,使其在单词和句子中使用适当的大写字母,您会得到一个更好的答案。
window.opener.myGlobalNamespaceObject.property = myResult