【问题标题】:node-webkit equivalent for sinatra?sinatra 的 node-webkit 等价物?
【发布时间】:2013-12-16 08:10:54
【问题描述】:

我一直在考虑学习如何基于 Web 技术制作简单的 Mac OS X 应用程序,我遇到了 node-webkit,它看起来很有吸引力。但是,我最近投资学习了 Sinatra/Ruby 的基础知识,我想继续学习该课程。

对于使用 Sinatra 的开发人员,是否有“node-webkit 等价物”?或者,有没有推荐的方法来使用 Sinatra 框架(或 Ruby)来构建本质上是 Web 包装器的 OS X 应用程序?

【问题讨论】:

    标签: ruby webkit sinatra chromium node-webkit


    【解决方案1】:

    Sinatra 是一个服务器端框架。 与客户端的 Node-webkit 相反。

    如果您需要与服务器交互,您仍然可以在您的服务器上使用 sinatra(以及 node.js、php...)。

    但是如果你在 node.js 上寻找像 sinatra 这样的框架,你应该看看 Express.js:https://npmjs.org/package/express

    【讨论】:

      【解决方案2】:

      Node-webkit 可以使用filehttp,具体使用哪个取决于您的需要。大多数时候你不需要,Node-webkit 完全在客户端运行,只使用 HTML、javascript 和 css。您当然可以在加载 Node-webkit 时初始化本地网络服务器,但首先尝试制作一个基本的“Hello World”应用程序来了解它是如何工作的。

      如果你仍然认为你需要spin up 一个网络服务器,那么代码可能看起来像这样(我使用的是 Express.js):

      // Retrieve libraries...
      var expressPort = 6014
      var NodeWebkit = require('nw.gui');
      
      // Call focus to application...
      NodeWebkit.Window.get().focus();
      
      // Instantiate the Express Server...
      var spawn = require("child_process").spawn;
      spawn("node", ['./server/server', expressPort]);
      
      // Request director page...
      window.location.replace('http://localhost:'+expressPort);
      

      为了在localhost 的页面中使用 Node-webkit 功能,您还需要在 package.json 的根目录下添加以下行:

      node-remote": "<local>


      注意:虽然这确实有效,但您必须真正考虑它是否有意义。换句话说,您的应用程序是完全独立的吗?如果除了应用程序之外没有任何东西可以访问该内容,那么您就不需要它。

      对于我的应用程序,我使用 Node-webkit 作为管理控制台来创建/管理广播。 (因此是本地网络服务器)

      【讨论】:

        【解决方案3】:

        Nw 不是 Web 框架。 Nw 不使用http 协议;它确实使用file 协议。

        Nwchromiumnodejs 组成,它允许您同时运行DOMnode.js 的东西——无需设置Web 服务器。

        【讨论】:

        • 幸运的是它完全可以使用HTTPHTTPS,因为chromium 实际上是一个浏览器。仅建议使用FILE,因为您可以完全控制安全性,从而使网络服务器过度杀伤。
        猜你喜欢
        • 2013-02-14
        • 2011-03-23
        • 2021-05-24
        • 2015-04-12
        • 2022-06-11
        • 2021-12-21
        • 1970-01-01
        • 2017-07-08
        • 2012-08-13
        相关资源
        最近更新 更多