Node.js + PostgreSQLを使ってアプリケーションを作る(4) ルーティング、コントローラーの追加
目次
4, ルーティング、コントローラーの追加 <-今回
今回やること
app.jsからルーティングとコントローラーを別ファイルに分割する
手順
- 1, コントローラーを作成
$ mkdir controllers $ mkdir controllers/public $ vim controllers/public/index.js
controllers/public/index.jsに、以下のように記述します。
'use strict'; const getIndex = function(req, res) { res.send('Hello World!'); }; module.exports = { getIndex: getIndex };
これで、モジュールとしてコントローラーを登録し、他の場所から呼び出せるようになります。
- 2, ルーティングの作成
$ mkdir routes $ mkdir routes/public $ vim routes/public/index.js
routes/public/index.jsに、以下のように記述します。
'use strict'; const express = require('express'); const router = express.Router(); const controller = require('../../controllers/public/index'); router.route('/') .get(controller.getIndex); module.exports = router;
'/'のURLが呼ばれた場合、1で作成したコントローラーのgetIndexで処理するように紐付けています。
- 3, ルーティングを使用するようにapp.jsを変更 app.jsを以下のように書き換える
var express = require('express'); var app = express(); // config const config = require('./config')(process.env.ENV); // routing const public_index = require('./routes/public/index'); app.use('/', public_index); app.listen(config.port, function () { console.log('Example app listening on port ' + config.port); });
'/'のURLが呼ばれた場合、2で作成したルーティング設定を適用するよう設定しています。
この状態で
$ ./node_modules/node-dev/bin/node-dev app.js
でアプリケーションを開始し、curl htttp://localhost:3000 とすると、
Hello World!
と表示されます。
ここまでのコードは
に公開してあります。