Node.js
npm

よく使うnpmまとめ

More than 3 years have passed since last update.

個人的によく使うnpmのメモです。

async

概要

非同期処理を、順次処理にするモジュールです。一連の処理を直列で実行させたり、平行して実行させて最後で同期を取るなど、色々なケースで使えます。
callback関数地獄になったコードがスッキリ書けますが、個人的な経験から言うとcallback関数地獄になるのはそもそもの書き方が良くない場合もあるので注意です。

使用例

// githubから引用
// https://github.com/caolan/async

async.series([
    function(callback){
        // do some stuff ...
        callback(null, 'one');
    },
    function(callback){
        // do some more stuff ...
        callback(null, 'two');
    }
],
// optional callback
function(err, results){
    // results is now equal to ['one', 'two']
});

cheerio

概要

サーバサイドでjQueryちっくなDOM操作を行えるモジュールです。jQueryに慣れていればすごく便利です。
用途としては主にHTMLの解析(スクレイピング)に使っています。HTMLの生成にも使えますが、その場合はtemplateエンジン(ejsとかectとか)を使うので、使ったことはありません。

使用例

var cheerio = require('cheerio');
var $ = cheerio.load(body); // httpレスポンスのbodyだと思ってください

$("a").each(function(){
    // aタグのhrefの値を順次取り出す。
    var url = $(this).attr("href"));
});

passport

概要

Node.js+Express+Passportで認証情報をセッションに保存する方法にも書きましたが、node.jsでAuth認証を実装するための決定版的なモジュールです。

使用例

// 公式のガイドから引用
// http://passportjs.org/guide/facebook/

passport.use(new FacebookStrategy({
    clientID: FACEBOOK_APP_ID,
    clientSecret: FACEBOOK_APP_SECRET,
    callbackURL: "http://www.example.com/auth/facebook/callback"
  },
  function(accessToken, refreshToken, profile, done) {
    User.findOrCreate(..., function(err, user) {
      if (err) { return done(err); }
      done(null, user);
    });
  }
));

cron

概要

定期的にスケジュールされたタスクを実行したい時に使います。
スケジュールの指定方法はLinuxのcronサービス(crontab)と同じように書けます。

使用例

var CronJob = require('cron').CronJob;

var cronJob = new CronJob({
    cronTime: "00 00 00 */7 * *",   // 7日間隔で実行

    onTick: function() {
        // ここに処理を書く
    },
    start: false
}).start();

moment

概要

日時に関することをやってくれる便利なモジュールです。JavaScriptは日時の処理があまり便利ではないので、このようなモジュールを使うと便利です。とにかく機能が充実しています。

使用例

var moment = require('moment');
var date = Date();
var WEEK = ["日", "月", "火", "水", "木", "金", "土"];

moment(date).format('YYYY-MM-DD');  // '2014-03-19'
WEEK[moment(date).format('e')]; // '水'

request

概要

httpリクエストを行うためのモジュールです。メソッドやパラメータの指定が細かく設定できます。

使用例

var request = require('request');
request({url: url}, function(error, response, body) {
    if(error || response.statusCode != 200){
        return callback(error);
    }
    return callback(null, body);
});