node-webkit相当于sinatra?
我一直在考虑学习如何基于网络技术制作简单的Mac OS X应用程序,我遇到了node-webkit这看起来很引人注目。 但是,我最近投入了学习Sinatra / Ruby的基础知识,我想继续学习这门课程。
对于使用Sinatra的开发人员,是否存在“node-webkit等效”? 或者,是否有推荐的方法使用Sinatra框架(或Ruby)来构建基本上是Web包装器的OS X应用程序?
Sinatra是一个服务器端框架。 与客户端的Node-webkit相反。
如果您需要与服务器交互,您仍然可以在服务器上使用sinatra(以及node.js,php,…)。
但是如果你在node.js上寻找像sinatra这样的框架,你应该研究一下Express.js: https ://npmjs.org/package/express
Node-webkit可以使用file
或http
,使用哪个取决于您的需要。 大多数时候你不需要,Node-webkit只使用HTML,javascript和css在客户端运行。 您当然可以在Node-webkit加载时初始化本地Web服务器,但首先尝试创建一个基本的“Hello World”应用程序来了解它是如何工作的。
如果您仍然认为需要启动 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-webkitfunction,您还需要在package.json
的根目录下添加以下行:
node-remote": "
注意:虽然这确实有效,但您必须考虑它是否有意义。 换句话说,您的应用程序是完全独立的吗? 如果没有任何东西可以访问除应用程序之外的内容,那么您不需要它。
对于我的应用程序,我使用Node-webkit作为管理控制台来创建/管理广播。 (因此是本地网络服务器)
Nw
不是一个Web框架。 Nw
不使用http
协议; 它确实使用file
协议。
Nw
由chromium
和nodejs
组成,它允许您运行DOM
和node.js
东西 – 无需设置Web服务器。