专栏首页Golang语言社区不只是Web:十大令人振奋的Node.js项目

不只是Web:十大令人振奋的Node.js项目

除了在Web服务器领域大展拳脚之外,Node.js同样也在无处不在的JavaScript应用程序创建当中散发出耀眼的光芒。

Node.js:不只是网站

就在仅仅几年之前,Node.js初始版本刚刚诞生时还只是一款谷歌出于尝试目的、利用Chromium V8打造而成的服务器端JavaScript引擎;然而时至今日,它已经成为一整套全面开花的完整平台。PayPal等高流量网站的工程师们曾经撰写出大量经验心得,与大家分享Node.js如何令Web框架的创建工作变得更加简便易行。

不过Node.js绝不只是一套Web堆栈——作为一项技术,它在多个不同层面焕发出勃勃生机。我们将通过今天的文章一同了解利用Node.js打造出的各类项目,其中包括服务器监控、流媒体、远程控制以及桌面与移动应用等等。在了解了这么多背景信息后,大家一定也会发出这样的感慨——Node.js的价值已经远远超出了常见Web服务器的范畴。

NodeOS

这款由Jacob Groundwater打造的项目在诞生之日起便承载着巨大的野心——希望围绕Linux核心建立起一套新型环境。其中Node.js作为“shell”,而Node的mpn则被用于系统包管理器。到目前为止,NodeOS的首个版本以Docker与Vagrant为创建基础——好的方面在于这样能使早期版本在共享、fork以及迭代方面更加便捷;但负面影响是系统运行所涉及的hoops过多。

不过总体来说,该项目的核心思路仍然颇具吸引力。大家不妨试想一下,Node.js不仅将被用于包管理,而且还负责打理脚本、界面以及大部分其它操作系统创建所必需的任务。

Noduino

希望通过网页控制自己Arduino的硬件技术人士们有福了,Noduino允许大家经由WebSocket或者串连接实现Arduino访问。该项目目前尚处于起步阶段,但驱动主板上的LED模块、捕捉来自Arduino的事件(例如按下按钮)等常见功能都可以正常支持。

Node-WebKit

作为专门针对Node.js应用程序的运行时,Node-WebKit允许大家将应用程序打包为精简化Chromium副本并将其交付至任何Node.js及Chromium已经移植过的平台(目前包括Linux、Mac OS X以及Windows)。打包的过程可以说非常简单。我们只需要将Node.js应用程序副本进行压缩、再添加一份清单,这就完成了。大家甚至可以通过Node.js方法及对象实现应用程序窗口菜单访问与其它平台原生操作。

跨平台应用程序部署从来不是一件简单的工作。如果大家希望能利用Web技术开发出桌面应用程序,那么不妨将Node-WebKit视为其它那些更大、更笨重框架的有益补充。

PDFKit

作为一款针对Node.js的PDF文档创建库,PDFKit允许大家利用一套“HTML 5 canvas类API”创建PDF文件,同时支持矢量图形创建以及字体嵌入。由于项目尚未彻底成熟,目前不少标准PDF功能(例如文档安全保护以及表格创建)仍然处于开发当中,不过文本换行、项目符号列表、高亮显示以及注释信息等功能已经正常可用。需要提醒大家的是,我们最好将PDFKit作为一款从头开始创建PDF文件的工具,而不要将其用于文件转换。如果各位需要对现有PDF文件进行调整,最好还是使用另一款名为“Scissors”的Node项目。

Log.io

Node.js在快速与Web两方面具备惊人的优势——而这两种特性无疑是大家最希望在监控工具当中看到的。作为一款实时日志监控系统,Log.io利用Socket.io库直接向大家的浏览器发送活动报告。在这里不存在持久层,受监控日志文件中的任何内容变动都会立即被转发给服务器、然后再传递到我们面前。更重要的是,有了第三方处理机制的辅助,系统只需将格式正确的信息发送至服务器监听TCP接口即可。

Nodecast或者Leapcast

谷歌的Chromecast还衍生出至少两款Node.js应用程序,它们能够帮助大家直接将基于移动设备的视频或者音乐发送到PC机上。只需在PC端运行Nodecast或者Leapcast,启动我们的移动设备,选择一款支持Chromecast的应用程序,而后大家即可将移动端的内容传输到电脑上。就这两者而言,Nodecast的复杂程度要低得多,但其功能也更弱一些。目前它能够通过测试的媒体来源只有YouTube与谷歌音乐。请大家别把Nodecast与Nodecast库弄混了,后者的作用在于为设备(例如Chromecast)提供使用拨号发现协议所需要的连接。

Nexe

在众多看似渺小但却实用性极高的Node.js工具当中,Nexe正是颇具代表性的一款——它的作用在于为Node.js应用创建单独存在的可执行文件。生成的结果可以在无需额外安装Node.js运行时的前提下直接运行,这就帮助非技术终端用户彻底告别了所有与Node.js应用程序运行存在依赖关系的组件。(显然,如果大家发布的是一款不涉及图形用户界面的Node.js应用,那么Nexe肯定能帮上大忙;不过对不起拥有图形用户界面的应用,Node-WebKit之类的方案才是正确的选择)。再来说说缺点:Nexe最大的问题在于目前还无法作用于Windows平台(只适用于Linux与Mac OS X),而且它也不支持原生Node.js模块。

Hyro

在利用Node-WebKit所打造的应用程序当中,Hyro这款实时HTML 5编辑器可谓一枝独秀。原始HTML内容被显示在当前页面的左手边,而结果内容则被显示在右手边。语法高亮功能由CodeMirror提供。Hyro项目的开发者并不打算将其打造成一款成熟的Web IDE,而只是将其塑造为一套专门针对HTML或者CSS的轻量级记事本方案。从这个角度讲,它可以被看作Node.js在适当支持应用程序却又不过度介入方面的典型范例。

Hy0072o

在利用Node-WebKit所打造的应用程序当中,Hyro这款实时HTML 5编辑器可谓一枝独秀。原始HTML内容被显示在当前页面的左手边,而结果内容则被显示在右手边。语法高亮功能由CodeMirror提供。Hyro项目的开发者并不打算将其打造成一款成熟的Web IDE,而只是将其塑造为一套专门针对HTML或者CSS的轻量级记事本方案。从这个角度讲,它可以被看作Node.js在适当支持应用程序却又不过度介入方面的典型范例。

Haroopad

作为另一款将Chromium作为自身UI的Node.js应用程序,Haroopad允许大家Markdown类型的文本,并将其生成为HTML。编辑与查看在窗口中并排而列并同步滚动,而且始终保持实时更新。文档也能够以HTML或者Markdown格式通过邮件进行发送,通过这种方式大家可以在完全无需使用插件的前提下将其发送至Tumblr或者添加到Evernote当中。说到这个,我们希望Haroopad的开发人员们能添加一套插件架构。像这样的一款程序存在很大改进空间。虽然他们一直在努力拓展多种格式,但目前Haroopad仍然只能支持HTML这一种。

TiddlyWiki5

这也是我个人最喜爱的项目。虽然命名显得不够简洁,但TiddlyWiki的才艺实力简直无穷无尽——这是一套维基系统,能够在不连接网络或者Web服务器的情况下通过单独HTML文件或者本地方式运行。经过彻底重新设计的版本5能够直接与Node.js相集成,从而实现大量原本独立运行模式下根本无法完成的功能。到发稿之时,TiddlyWiki 5仍然处于测试阶段,不过根据时间规划我们将在今年年底迎来它的正式版本。

原文链接:http://www.infoworld.com/slideshow/131906/beyond-the-web-10-surprising-nodejs-projects-232369#slide1

本文分享自微信公众号 - Golang语言社区(Golangweb)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 提升 Node.js 应用性能的 5 个技巧

    “如果nginx没有在你的节点服务器之前,那么你可能就错了。”Bryan Hughes在Twitter上说 Node.js是全球领先的用JavaScript——...

    李海彬
  • 提升 Node.js 应用性能的 5 个技巧

    “如果nginx没有在你的节点服务器之前,那么你可能就错了。”Bryan Hughes在Twitter上说 Node.js是全球领先的用JavaScript——...

    李海彬
  • Node.js真的无所不能?那些不适用的应用领域分析

    Node.js是一个服务器端JavaScript解释器,底层采用的还是libevent;它的目标是帮助程序员构建高度可伸缩的应用程序,目前对Node.js 的采...

    李海彬
  • 揭秘 Node.js 底层架构

    2009 年 Ryan Dahl 在JSConf EU大会上推出了 Node.js,最初是希望能够通过异步模型突破传统 Web 服务器的高并发瓶颈,之后愈渐发展...

    ayqy贾杰
  • Node.js学习入门

    Node.js是一个可以允许我们在服务器端运行JavaScript代码的程序。 这是什么意思呢?通常,我们写的JavaScript代码都是在浏览器中运行的。 ...

    2Simple
  • 2.从AbstractQueuedSynchronizer(AQS)说起(1)——独占模式的锁获取与释放

      首先我们从java.util.concurrent.locks包中的AbstraceQueuedSynchronizer说起,在下文中称为AQS。   AQ...

    用户1148394
  • 在Centos上安装Node.js

    Node.js是一个能够在服务器端运行JavaScript的开放源代码、跨平台avaScript 运行环境。Node.js由Node.js基金会持有和维护,并与...

    八十岁的背影
  • 2019年学习Python-day2作业

    qq317062516
  • 让天下没有难用的Node.js

    每次阅读到这句话时总能想到我们阿里巴巴的使命“让天下没有难做的生意”,而“让天下没有难用的Node.js”我猜这应该就是阿里的前端们,对Node.js大规模应用...

    icepy
  • Node.js 应该处于技术架构中的哪个位置?

    很多人已经将Node作为JavaScript的Runtime了,视为一门后端语言。聊一聊究竟Node出现在架构的什么位置呢? 首先说下目前我了解到的技术架构,主...

    春哥大魔王

扫码关注云+社区

领取腾讯云代金券