NPM常用模块功能学习

在看别人写的Nodejs工具,对于里面的那些模块有点晕,搜一下这些常见的模块学习一下,以便了解它们的功能以及使用例子,方便自己快速读懂别人的代码。

常用npm模块一览

模块名作者简介
asynccaolan异步操作管理
blrvagg二进制数据解析
bluebirdpetkaantonov异步操作管理
browserifysubstack发布浏览器可用的包
bunyantrentm日志(logging)管理
chaijakeluer断言
chalksindresorhus命令行彩色输出
cotjholowaychuk异步流程管理
colorsmarak命令行彩色输出
commandertjholowaychuk命令行工具
debugtjholowaychukDebug输出器
dockerodeapocasDocker管理
duplexifymafintoshStream流操作工具
event-streamdominictarrStream流操作工具
expresstjholowaychukServer服务器框架
globisaacs文件名匹配
gruntcowboy构建工具
gulpcontra构建工具
hapihueniverseServer服务器框架
hyperquestsubstack轻量级HTTP客户端
istanbulgotwarlost测试用例覆盖率分析
JSONStreamdominictarrStream流管理工具
koatjholowaychukServer服务器框架
leveluprvaggLevelDB
lodashjdalton函数式编程工具
log4jsnomiddlename日志(logging)管理工具
minimatchisaacs文件名匹配
minimistsubstack命令行操作
mochatjholowaychuk单元测试
momenttimrwood日期时间输出
mongodbchristkvMongoDB
mysqlfelixgeMySQL
nconfindexzero配置工具
needletomas轻量级HTTP客户端
node-fetchbitinnFetch API
nodemailerandris9Email客户端
passportjaredhanson登录和认证
pgbriancPostgres
pumpmafintoshStream流管理工具
redismjrRedis
requestmikealHTTP客户端
restifymcavageREST API搭建
socket.iorauchgWebSocket实时通信
split2matteo.collinaStream流管理工具
tapesubstack单元测试
through2rvaggStream流管理工具
underscorejashkenas函数式编程工具
wseinarosWebsockets
xml2jsleonidasXML转换为JavaScript

其中,有一个NPM工具,今天先来看看官方文档单纯的介绍看不懂是怎么出来的。

那就是minimist,命令行参数解析。官方文档例子如下:

var argv = require('minimist')(process.argv.slice(2));
console.dir(argv);
$ node example/parse.js -a beep -b boop
{ _: [], a: 'beep', b: 'boop' }
$ node example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz
{ _: [ 'foo', 'bar', 'baz' ],
  x: 3,
  y: 4,
  n: 5,
  a: true,
  b: true,
  c: true,
  beep: 'boop' }

我不太明白这个2是从哪个地方取的?

后来看别人的一个解释才知道。原来是这样子。

假如在命令行中输入以下命令。

node index.js --beep=boop -t -z 12 -n5 foo bar

Node.js 程序启动后可以直接从process.argv中读取到参数列表:

console.log(process.argv);
// ['/bin/node', '/tmp/index.js', '--beep=boop', '-t', '-z', '12', '-n5', 'foo', 'bar']

从上述代码中可以看到,process.argv 变量是一个数组,数组前两项分别是 node 程序位置和js脚本位置,数组中随后的元素都是我们启动Node.js后的参数,这些参数以空格分隔成数组。

虽然从 process.argv 中可以得到启动参数列表,但是我们仍需要对参数进行进一步解析处理才行。

所以才有了上面的这个minimist模块,方便解析路径的参数。

原文:NPM常用模块功能学习 ,未经许可,禁止转载。
来源:前端开发博客 (http://caibaojian.com/nmp-modules.html)