My Toolkit of Node.js

前言

假定从去年7月份总算从,我入门Nodejs也发一半年富了。这半年,从自学入门Nodejs到后来先端实习生的身价入职魅族,再到新兴转型Nodejs开发者,这间多得发雷同员严格的「老师」,使得我提高的脚步非以往的快能够比较。在上,工作之时段,我啊触发了过多好的、实实在在能迎刃而解一般支出问题、提高效率的Nodejs模块,故而罗列出,分享之。

Cheerio

Fast, flexible, and lean implementation of core jQuery designed
specifically for the server.

Cheerio,说它是劳务器端的jQuery一点也无为过,在github上吗是大受欢迎,star数达4500极富,至目前为止,已经起923差commit。它相当jQuery绝大部分之仓库,以至于你不过需要同词$ = require('cheerio').load(YOUR_HTML_CONTENT);,便可以像在前者用jQuery一样的赏心悦目,愉快。
By the
way,和Cheerio类似的框架还有:jsdom,一个受欢迎程度略小于Cheerio,但是其产生2,147多之commit,可见维护者之真情。

Waterline

An adapter-based ORM for Node.js with support for mysql, mongo,
postgres, redis, and more

Waterline是于Sails框架衍生出的Nodejs平台下的ORM,除了支持广大的mysql、mongodb,还支持PostgreSQL、Redis、Memory、Disk等等

Bookshelf

A Node.js ORM for PostgreSQL, MySQL and SQLite3 in the style of
Backbone.js

以及Waterline类似,但作为同类产品且为Ghost选择标配之一的Bookshelf必然有它的特别之处,仍需君细细品来。

Node-Soap

A SOAP client and server for node.js.

于REST,大家一定熟悉,就算非熟识,也是由来已久负其芳名,或者是稍微发耳闻。REST简单而直观,把HTTP协议下到了极限,在这种考虑指导下,它竟然因此HTTP请求的头信息来指明资源的表示形式,用HTTP的谬误机制来回到访问资源的一无是处。但以R.T.
Fielding博士在外的舆论里提出REST之前,又是哪位来负担Web
Service这卖差而为?
SOAP (Simple Object Access Protocol)
顾名思义,是一个严定义的信交换协议,用于在Web
Service中拿远程调用和归封装成机器而读之格式化数据。它根据 XML
格式,在多数场面下,使用HTTP协议传输WSDL请求。
只要node-soap模块,则允许在node环境中,接入其他程序语言 (诸如
ASP.net、Java 等)
开发的WebService。也会以node中开发基于SOAP的WebService供其他程序调用。
当然,在多数场面下,过去SOAP能召开的行,REST也是会不辱使命的,且REST更加文雅,简单。以自我之水平,我耶是眷恋不清楚SOAP依然有的必然性,但是有那等同词话:「存在,就是合情之」。既然,它是,也有人用到,那么当合作开发中和SOAP相遇也是发可能性的,相信那是我们的情缘。
倘你生出趣味,听一下本身和SOAP邂逅的故事:SOAP,Web
service的枢纽

Passport

Simple, unobtrusive authentication for Node.js.

若果你的站点想快建立passport-user结构的用户系统,且能简单的属流行的老三方登录,用passport就从不错了。它不光提供了本站登录的缓解方案,还有一样深堆第三正在登录的方针,见:Strategies
假设你用Sails的言语,这里还有一个承接Sails和passport的模块:sails-generate-auth

Bluebird

Bluebird is a full featured promise library with unmatched
performance.

Javascript 的社会风气产生同种痛叫「callback
hell」,中文翻译过来给「回调地狱」,如果能够领得矣它们带来的苦处,且连续爱在它,这是「真爱」。Promise的概念,能够让你同javascript好好爱的深沉。
贯彻Promise的仓库发生很多,我掌握之发生:

  • Q
  • when
  • bluebird
  • jQuery的deferred
  • javascript自带的Promise(一些尖端浏览器内置的Promise对象)

里头,我因此之可比顺手的当属bluebird,它吗是眼下最美妙博客系统Ghost的标配之一。
如若您想深入摸底Promise的定义,可以触这里:Promises: The Sync
Problem
设若你想侧重时间,珍惜生命,这里来中文版:深深明Promise五部曲

Lodash

A JavaScript utility library delivering consistency, modularity,
performance, & extras.

我眷恋称它们吧Javascript的瑞士军刀,或者是一个蓝色工具箱。lodash提供了同等密密麻麻相当不错的跟函数式编程相关的点子。函数式编程就比如搭积木一样,像.identity、.partial、_.compose、splat、unsplat等还是任务单一的函数。别看它简单,把它当积木看待,它们释放的凡止的活力。
越是简单的东西,蕴藏的更加更无限的可能性。

Node.bcrypt.js

bcrypt for NodeJs

bcrypt,是一个跨平台的文件加密工具。由她加密的文书可当备支持的操作系统和计算机上进行转移。它的口令必须是8到56单字符,并以于里头被转化为448员的密钥。然而,所提供的所有字符都有着老重要的意义。密码越强,您的数就更安全。而node.bcrypt.js则是披上Nodejs斗篷的bcrypt,它的62.2%凡C++代码,而Javascript代码只发30.3%。

Moment

Parse, validate, manipulate, and display dates in javascript.

Moment是一个轻量级用于拍卖日期的工具,除了对日期进行格式化以外,你还能针对日期进行操作,验证,解析。其以github的star数有1.9W+,比明显的Express(github
star是1.7w+)还差不多一些。这么漂亮的框架实在是亲亲。

Skipper

Streaming multi-uploads for Sails/Express – supports disk, S3, gridfs,
and custom file adapters

Skipper是平等悠悠Sails衍生的拍卖多文件上传的零部件,支持及污染文书及本地或远端服务器,如果默认adapter没有您要之劳动,你还能打定义一模拟adapter满足你的急需。就像自己为了把文件上传播又拍云而定制了之adapter:
skipper-upyun

Node-fs-extra

Node.js: extra methods for the fs object.

Node-fs-extra提供了片附加的fs没有底函数,如果Nodejs自带的fs模块,还不能够满足你以进展文件操作的用,或者用着未乐意。不妨来node-fs-extra找一下发出没起您想使的化解方案。

Mocha

mocha – simple, flexible, fun javascript test framework for node.js &
the browser. (BDD, TDD, QUnit styles via interfaces)

Nodejs单元测试哪家强?
mocha,mocha,似魔鬼的脚步~~yo!

Should

BDD style assertions for node.js — test framework agnostic

BDD风格的断言模块,旨在让编程像说白话(至少在测试断言上)。

Supertest

Super-agent driven library for testing node.js HTTP servers using a
fluent API

万一测试的上,需要HTTP请求呢?找Supertest吧,和Should同一个作者,TJ大神,你值得信任。

PM2

Production process manager for Node.JS applications. Perfectly
designed for microservice architecture.

Nodejs单线程的特点,意味着,如果您的某个平等实施代码阻塞了,你的满贯程序都见面崩溃。人非圣贤,孰能无过,没有人会确保自己之描摹的代码永无BUG(难道要当文件头加上无BUG神兽?)。在养条件下,如果程序挂了怎么惩罚?让她自动重新启呗。
PM2就是千篇一律慢慢悠悠解决这种问题之家伙,当然,作为一个过程管理器,它的来意不仅仅如此。

Markdown-js

A Markdown parser for javascript

Markdown时下越来越为欢迎了,实质上markdown最终是换成为HTML格式才能够显为网页的。而markdown-js则是将markdown格式的文本转化成HTML格式的工具。但是,如果起HTML格式的公文转化成Markdown格式的文件为?markdown-js好像不支持,那就是用to-markdown吧。

后话

正文的描述和用语,仅冲自己时底水准如果写,难免有局限和措辞不当之处在。如果生BUG或者不当之处,欢迎指出与吐槽。


若果本文对您有因此
要不要吝啬你们的Follow与Start
立刻会大大支持我们后续写

「Github」
MZMonster
:@MZMonster
JC_Huang
:@JerryC8080