Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

expessでリクエストが来た際の処理を追加する

expessでリクエストが来た際の処理を追加する事ができます。
postが来たら、その内容に応じた処理をするとか、GETの処理前にユーザの情報を取得するとか。

実際のところ

リクエストを発行するごとに、

  1. コンソールにリクエストを発行した時間を表示
  2. リクエストを発行した時間をjadeでレンダリングしたHTMLページを表示

という二段構えの処理を想定します。
ディレクトリ構造や必要なライブラリは基本は前回の記事と同様です。

app.js

var express = require('express');
var app     = express();

app.set('view engine', 'jade');

// 実行したい内容を書く
var requestTime = function (req, res, next) {
    var now     = new Date;
    var nowtime = now.toUTCString(); 
    console.log(nowtime); 
    req.requestTime = nowtime;
    next();  //次の処理へ移動
};

// app.useでミドルウェア側で利用可能にする
app.use(requestTime);

// req (= request object)に先ほどの機能がミドルウェア経由で利用可能になってるので使う
app.get('/', function(req, res) {
    var responseText = 'Requested at: ' + req.requestTime + '';
    res.render('index', { title: 'Our Apps!', message: responseText});
});

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

実行するとコンソールには、以下のようにでます。

$ node app.js 
Example app listening on port 3000!
Fri, 12 Feb 2016 11:49:12 GMT
Fri, 12 Feb 2016 11:49:19 GMT

WEBページはこんな塩梅
f:id:shuzo_kino:20160212213915p:plain