My Toolkit of Node.js

原文链接:BlueSun | My Toolkit of Node.js

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

    原文作者:JerryC
    原文地址: https://segmentfault.com/a/1190000004627998
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞