Sequelizeを使う準備が整ったところで、どんなWebアプリを作るにしても避けて通れないであろうユーザー認証の仕組みを実装していく。
大まかな流れはこんな感じ。
Userモデルを定義する- 認証モジュールを設計する
- リクエストのルーティングを追加する
- 認証モジュールを実装する
Sequelizeを使う準備が整ったところで、どんなWebアプリを作るにしても避けて通れないであろうユーザー認証の仕組みを実装していく。
大まかな流れはこんな感じ。
Userモデルを定義する7月20日に催されたJTPAギークサロン「青木淳氏とNode.js/Herokuを体験する」にボランティアのテクニカルサポートスタッフとして参加してきた。JTPAでのハッカソンは、Hadoopで始める並列データ解析以来。参加者は各々ラップトップを持ち込み(参加者の9割がMacというのがシリコンバレーらしい)、ガイドに従いながらプログラムを書いていくわけだが、Hadoopの時と同様に参加者のプログラミングスキルはバラバラ。自分でWebサービスを作ったことがある人もいれば、プログラムを書いたことがないという初心者もいたけれど、ホスト役の青木氏の素晴らしいファシリテーションで、時間内に全員が「heroku上でMySQLを使ったnodeアプリを動かす」というゴールに辿り着くことができた。
.vimrcなどで自分専用のVim環境を作っていると、文字色や背景色の色指定をctermbgなどの数値で設定する際に、色と数値の対応表がほしくなることがある。そんなときに使えるPerlスクリプトを書いてみた。
それでは中編で棚上げしていたsyncメソッドを提供するAPIの実装を書いていこう。
Sequelizeのサンプルを見てもわかるように、syncメソッドはimportメソッドによってインスタンス化されたモデルオブジェクトに対する呼び出し(Project.sync)と、Sequelizeオブジェクトに対する呼び出し(sequelize.sync)の2パターンある。モデルオブジェクトに対してsync()を実行すると、対応するテーブル定義だけが構築される。 Sequelizeオブジェクトに対してsync()を実行すると、データベース全体が構築される。また、sync()の引数に{ force: true }を渡すと、既存のテーブルを一旦削除(DROP)してゼロからテーブルを作り直す(再構築)。