我一直在考虑学习如何基于网络技术制作简单的Mac OS X应用程序,而且我遇到了似乎引人注目的node-webkit。但是,我最近投入了学习Sinatra / Ruby的基础知识,我想继续学习这门课程。
对于使用Sinatra的开发人员,是否存在“node-webkit等效”?或者,是否有推荐的方法使用Sinatra框架(或Ruby)来构建基本上是Web包装器的OS X应用程序?
答案 0 :(得分:3)
Sinatra是一个服务器端框架。 与客户端的Node-webkit相反。
如果您需要与服务器进行交互,您仍然可以在服务器上使用sinatra(以及node.js,php,...)。
但是如果你在node.js上寻找像sinatra这样的框架,你应该研究一下Express.js:https://npmjs.org/package/express
答案 1 :(得分:1)
Node-webkit可以使用file
或http
,使用哪些取决于您的需求。大多数时候你不需要,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-webkit作为管理控制台来创建/管理广播。 (因此是本地网络服务器)
答案 2 :(得分:0)
Nw
不是网络框架。 Nw
不使用http
协议;它确实使用file
协议。
Nw
由chromium
和nodejs
组成,可让您同时运行DOM
和node.js
内容 - 无需设置网络服务器。