My Toolkit www.27111.comof Node.js

前言

假如从上年四月份算起,笔者入门Nodejs也有5个月有余了。那四个月,从自学入门Nodejs到新兴在此以前端实习生的地位入职一加,再到后来转型Nodejs开发者,那中间多得有一个人严谨的「老师」,使得本身提升的步子非今后的快慢能比较。在就学,工作的时候,小编也触发了累累美好的、实实在在能一举成功一般支出难点、提升效用的Nodejs模块,故而罗列出来,分享之。

Cheerio

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

Cheerio,说它是劳务器端的jQuery一点也不为过,在github上也是大受欢迎,star数达4500方便,至最近结束,已经有922遍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平台下的OKoleosM,除了辅助周边的mysql、mongodb,还协理PostgreSQL、Redis、Memory、Disk等等

Bookshelf

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

与沃特erline类似,但作为同类产品且被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更Gavin雅,简单。以本人的品位,小编也是想不晓得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的瑞士联邦军刀,或然是2个驼灰工具箱。lodash提供了一层层万分不错的跟函数式编制程序相关的办法。函数式编程就像是搭积木一样,像.identity、.partial、_.compose、splat、unsplat等都是天职单一的函数。别看它们不难,把它们作为积木看待,它们释放的是无尽的精力。
越是不难的东西,蕴藏的越来越更为无限的或者性。

Node.bcrypt.js

bcrypt for NodeJs

bcrypt,是二个跨平台的文件加密工具。由它加密的文书可在具备支持的操作系统和处理器上拓展更换。它的口令必须是8至5七个字符,并将在内部被转载为445位的密钥。然而,所提供的具备字符都装有很是关键的意思。密码越强大,您的数额就越安全。而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同3个小编,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

马克down时下越来越受欢迎了,实质上markdown最后是转换来HTML格式才能呈现于网页的。而markdown-js则是把markdown格式的公文转化成HTML格式的工具。然则,借使从HTML格式的文件转化成马克down格式的文书呢?markdown-js好像不帮衬,那就用to-markdown吧。

后话

本文的讲述及用语,仅依照本身近来的水准而写,难免存有局限和措辞不当之处。要是有BUG可能不当之处,欢迎建议与吐槽。


假定本文对您有用
请不要吝啬你们的Follow与Start
那会大大支持大家三番七遍创作

「Github」
MZMonster
@MZMonster
JC_Huang
@JerryC8080

发表评论

电子邮件地址不会被公开。 必填项已用*标注