node-webkit相当于sinatra?

时间:2013-11-30 06:45:08

标签: ruby webkit sinatra chromium node-webkit

我一直在考虑学习如何基于网络技术制作简单的Mac OS X应用程序,而且我遇到了似乎引人注目的node-webkit。但是,我最近投入了学习Sinatra / Ruby的基础知识,我想继续学习这门课程。

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

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

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

如果您仍然认为需要spin up一个Web服务器,那么代码可能看起来像这样(我正在使用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作为管理控制台来创建/管理广播。 (因此是本地网络服务器)

答案 2 :(得分:0)

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

Nwchromiumnodejs组成,可让您同时运行DOMnode.js内容 - 无需设置网络服务器。

相关问题