【问题标题】:Mimicking the features of node-webkit using a client and a server使用客户端和服务器模仿 node-webkit 的功能
【发布时间】:2012-11-06 10:20:34
【问题描述】:

我正在尝试找出是否可以从网页调用 node.js 函数。有什么方法可以让 Google Chrome 访问 node.js 函数(以便它们在 node.js 服务器上运行),如此处所示?

(我知道可以在不修改代码的情况下使用node-webkit(非标准 Chromium 实现)来执行此操作,但我更喜欢使用未修改的浏览器来执行此操作,这将需要显示的代码下面以某种方式进行修改。)

<html>
    <body>
        <script type = "text/javascript">
            var exec = require('child_process').exec; //node.js function
        </script>
        <p onclick = "exec('firefox')">
            Click here to launch the Firefox web browser.
        </p>
   </body>
</html>

【问题讨论】:

标签: node.js chromium


【解决方案1】:

不,这是不可能的,出于明显的安全原因。

您只能使用浏览器为您提供的内容。 node-webkit 是最接近的,但不符合您的要求。

【讨论】:

  • 我知道一个名为 nowjs 的 node.js 库,它允许从浏览器调用 node.js 函数 - 是否可以使用 nowjs 实现某种解决方法?
  • Nowjs 需要服务器。如果您不想在浏览器之外运行任何东西,那么这不适合您。当然,如果在客户端安装东西是公平的游戏,那么有数百种可能性。
  • 我实际上想使用客户端服务器来模仿node-webkit的功能——这可能吗?
  • @AndersonGreen,在这种情况下,使用 Socket.IO 之类的东西在服务器端向exec() 发出代码。我最近刚刚建立了一个与此相反的项目,并取得了不错的成功。基础不难。当您需要脚本时,由于范围和其他原因,它可能会变得更加复杂。
  • 我正在使用 now.js,它运行得非常好。服务器可以与客户端在同一台机器上,也可以在其他地方。我正在与客户端在同一台电脑上使用服务器进行所有开发。也就是说 now.js 不再处于开发阶段。但是它工作正常,它们是替代品。
【解决方案2】:

NW 有自己的方法,比如 node exec :

var gui = require('nw.gui');
gui.Shell.openItem('firefox', ,function(error, stdout, stderr) { });

【讨论】:

  • NW 代表“node-webkit”吗?
  • yes node-webkit :),它将打开 shell 外部程序,更多信息请访问 wiki 页面:github.com/rogerwang/node-webkit/wiki/_pagesgithub.com/rogerwang/node-webkit/wiki/Shell
  • 另外,这如何具体回答我的问题(使用 Google Chrome 浏览器客户端和 node.js 服务器模仿 node-webkit 的功能?)
  • 我认为node-webkit只是客户端,如果你想在服务器端和客户端之间架起桥梁,appjs很棒。
  • 这个答案是否与 appjs 有关?我仍然不明白它是如何回答这个问题的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-27
  • 1970-01-01
相关资源
最近更新 更多