常用npm模块分享

平时自己用的npm模块也不算少了,其实网上有很多牛人开发的npm模块都很好,希望不要被埋没了。

一、 实用的模块

1.thunder-vip

作用:获取最新可用的迅雷 vip 账号。
解决什么:不用每次打开网站去找号。。
用法: $ thunder or

  var thunderVip = require('thunder-vip');  thunderVip(function (err, accounts) {  console.log(accounts);  });

截图

2. npm-user-downloads

npm-user-downloads

查看 npm 用户某个时间段内所有模块的下载量,按从高到低排名。

解决什么:起初是想看自己的那些模块下载量多,好重点维护。。

用法: $ nud hupengbest last-month --limit=20

截图:

二、koa开发模块

1. co

作用:异步控制

1 栗子

    co(function* () {      var result = yield Promise.resolve(true);      return result;    }).then(function (value) {      console.log(value);    }, function (err) {      console.error(err.stack);    });

2 如果你想把一个 co-generator-function 转成真实的functionu并返回一个promise 可以使用co.wrap(fn*)

    var fn = co.wrap(function* (val) {      return yield Promise.resolve(val);    });    fn(true).then(function (val) {    });

3 完整的example

    var co = require('co');    co(function *(){      // yield any promise      var result = yield Promise.resolve(true);    }).catch(onerror);    co(function *(){      // resolve multiple promises in parallel      var a = Promise.resolve(1);      var b = Promise.resolve(2);      var c = Promise.resolve(3);      var res = yield [a, b, c];      console.log(res);      // => [1, 2, 3]    }).catch(onerror);    // errors can be try/catched    co(function *(){      try {        yield Promise.reject(new Error('boom'));      } catch (err) {        console.error(err.message); // "boom"     }    }).catch(onerror);    function onerror(err) {      // log any uncaught errors      // co will not throw any errors you do not handle!!!      // HANDLE ALL YOUR ERRORS!!!      console.error(err.stack);    }

4 api

co(fn*).then( val => )
解决一个generator然后返回一个promise

    co(function* () {      return yield Promise.resolve(true);    }).then(function (val) {      console.log(val);    }, function (err) {      console.error(err.stack);    });

var fn = co.wrap(fn*)
将一个generator转成普通的function并返回一个promise

    var fn = co.wrap(function* (val) {      return yield Promise.resolve(val);    });    fn(true).then(function (val) {    });

2、debug

npm install debug

  1. 使用方法
  //Example app.js    var debug = require('debug')('http')      , http = require('http')      , name = 'My App';    // fake app    debug('booting %s', name);    http.createServer(function(req, res){      debug(req.method + ' ' + req.url);      res.end('hello\n');    }).listen(3000, function(){      debug('listening');    });    // fake worker of some kind    require('./worker');
 //Example worker.js:    var debug = require('debug')('worker');    setInterval(function(){      debug('doing some work');    }, 1000);

效果图

在windows环境下需要设置环境变量set DEBUG=*,-not_this 我这里使用的是idea的debug调试

windows 下启动方式

将debug日志转存到文件中
DEBUG_FD=3 node your-app.js 3> whatever.log

3、koa-bodyparser

使用方法

  var koa = require('koa');  var bodyParser = require('koa-bodyparser');  var app = koa();  app.use(bodyParser());  app.use(function *() {    this.body = this.request.body;  });

在koa2中使用

npm install koa-bodyparser@next --save

4. koa-json

npm install koa-json --save

使用方法

var json = require('koa-json');var Koa = require('koa');var app = new Koa();app.use(json());app.use((ctx) => {  ctx.body = { foo: 'bar' };});

4. koa-webpack-dev-middleware

使用方法

npm install --save-dev koa-webpack-dev-middleware

var app = require('koa')();var webpackMiddleware = require("koa-webpack-dev-middleware");app.use(webpackMiddleware(webpack({  // webpack options  // webpackMiddleware takes a Compiler object as first parameter  // which is returned by webpack(...) without callback.  entry: "...",  output: {      path: "/"      // no real path is required, just pass "/"      // but it will work with other paths too.  }}), {  // all options optional  noInfo: false,  // display no info to console (only warnings and errors)  quiet: false,  // display nothing to the console  lazy: true,  // switch into lazy mode  // that means no watching, but recompilation on every request  watchDelay: 300,  // delay after change (only lazy: false)  publicPath: "/assets/",  // public path to bind the middleware to  // use the same as in webpack  headers: { "X-Custom-Header": "yes" },  // custom headers  stats: {      colors: true  }  // options for formating the statistics}));

关键字:npm, node.js, JavaScript, koa

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部