アットウィキロゴ

第9章「Expressフレームワークを使う」を4.x化してみた

第9章で説明されている、node.jsのフレームワーク、「Express」でのブログアプリ作成を、
4.x系で動かすための情報を記述します。

書籍の第8章まで読み進められており、第9章の内容もなんとなく理解できる方を対象にしています。
いまのところ、macの環境でのみ動作確認をしています。

動作済みのソースもこのページの一番下にアップロードしています。
ただし、このサイトが1MB以上のアップロードに対応していないため、
node_modules以下のモジュールを削除しています。動作確認時にモジュールをインストールしてください。


また説明が簡素というか大分足りてないと思いますので、適宜書籍ソースと改変したソースを参考にしてください。
テンプレートエンジンで書籍同様jadeを利用していますが、jadeに関しての説明も省略しています。

  • 動作確認環境について
node.js : v0.10.5
express: 4.8.3
express-generator: 4.2.0


  • インストールとスケルトンコードの実行
expressのインストール自体は書籍を参照してください。

書籍でexpressの導入後にスケルトンコードを生成していますが、
4.x系ではスケルトンコードのジェネレーターがexpress本体から独立しました。
そのため、以下のコマンドでジェネレーターを追加インストールします。
npm install express-generator

次にインストールしたジェネレーターが存在するフォルダ
(個人の環境によって違いますが~/node_modules/express-generator/bin等)
に移動して、以下のコマンドを実行します。
node express [環境を作りたいフォルダ名]

さらに環境を作ったフォルダに移動して、以下のコマンドを実行します。
npm install

これで環境ができました。テストプログラムの実行は以下のコマンドです。
npm start


  • ブログアプリソースコード
3.xから4.xへの変更で大きく変わったのがgetとpostを受け取る処理の変更です。
書籍のソースと改変した4.xバージョンのソースを見比べてみてください。
2014年8月時点では、書籍の最新のソースは以下にあります。
http://sourceforge.jp/users/hylom/pf/node_sample_nblog/scm/tree/4b1661ac724bd351c096d176a2a3d27f5c8a211f/

  • getメソッドとsetメソッドの修正
書籍では、
app.get('/login', routes.login);
app.post('/login', routes.login.post);
app.get('/logout', routes.logout);
というように、appオブジェクトのgetメソッドとpostメソッドを呼び、引数にパスと関数の参照を渡していたのを、、、

4.x版では
app.jsに
var routes = require('./routes');
とroutesフォルダの参照をもらって、
app.use('/', routes);
のようにappオブジェクトのuseメソッドに"/"パスとフォルダの参照を渡しています。
実際のurlパスごとの処理は、routesフォルダ以下に設置したindex.jsで処理をします。
/routes/index.js では書籍の「app.get('/login', routes.login);」に当たる処理を以下のように記述します。
var express = require('express');
var router = express.Router();
      • (省略)
router.get('/login', function(req, res) {
 // GETリクエストに対する処理
  res.render('login', {
    page: { title: 'login' },
    user: null,
    name: '',
    error: 200,
    loginFailed: false
  });
  return;
});
      • (省略)
module.exports = router;

expressオブジェクトのRouter()メソッドの戻り値のgetメソッドを呼んでいます。
メソッドの中身は3.xの処理をほぼそのまま流用しています。


  • その他
他にも、モジュールの宣言やセッションの生成等いろいろと修正していますので、
ソースと書籍を適宜確認して下さい。
最終更新:2014年08月21日 19:43
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。
添付ファイル