タグ

2012年7月2日のブックマーク (4件)

  • node.jsでSequelizeを使うための準備/中編 | Inhale n' Exhale

    前編では、Sequelizeをインスタンス化するために自前でdbconnモジュールを作って、app.jsはこんな感じにシンプルに書けるようになった。 var express = require('express') , resource = require('express-resource') , config = require('config') , sequelize = require('dbconn')(config) , app = module.exports = express.createServer(); app.resource('users', require('./routes/users'), { id: 'id' }); 実際にSequelizeを使ってDBに対するCRUD操作を行うAPIの実装を書く以前に、まだDBすら存在しないのでmysqlコマンドでDB

    node.jsでSequelizeを使うための準備/中編 | Inhale n' Exhale
  • node.jsでSequelizeを使うための準備/後編 | Inhale n' Exhale

    それでは中編で棚上げしていたsyncメソッドを提供するAPIの実装を書いていこう。 Sequelizeのサンプルを見てもわかるように、syncメソッドはimportメソッドによってインスタンス化されたモデルオブジェクトに対する呼び出し(Project.sync)と、Sequelizeオブジェクトに対する呼び出し(sequelize.sync)の2パターンある。モデルオブジェクトに対してsync()を実行すると、対応するテーブル定義だけが構築される。 Sequelizeオブジェクトに対してsync()を実行すると、データベース全体が構築される。また、sync()の引数に{ force: true }を渡すと、既存のテーブルを一旦削除(DROP)してゼロからテーブルを作り直す(再構築)。 APIとしては、個々のテーブル(モデルオブジェクト)に対する呼び出しと、全体(Sequelizeオブジェク

    node.jsでSequelizeを使うための準備/後編 | Inhale n' Exhale
  • node.jsでREST APIを作るのに最適なexpress-resource | Inhale n' Exhale

    「node.jsを使って簡単にWebアプリが作れる!」みたいな記事で紹介されているサンプルコードは、だいたいそのまま使いものにならないことが多い。実際のアプリ開発では、いろいろなモジュールをNPMでインストールして、ソースコードツリーの階層なんかにも気を配ったりするものだ。DBへのアクセスも一元化して、O/Rマッパーも使えるようにしたい。国際化対応も考えなければならない。デバッガも必要だ。アプリを作りながら後付していくのもいいが、最初の段階である程度は固めておきたいと思う人も多いだろう。 すべてを一気に紹介すると相当長くなりそうなので、今回はREST APIを作る上で欠かせないexpressとexpress-resourceに焦点を当てる。node.jsとNPMをまだインストールしていなかったらnvmでインストールしておこう。 node.jsでMVCアーキテクチャのアプリを作ろうと思ったら

    node.jsでREST APIを作るのに最適なexpress-resource | Inhale n' Exhale
  • node.jsでSequelizeを使うための準備/前編 | Inhale n' Exhale

    MVCアプリケーションを作る際、コントローラ(C)とビュー(V)は前回紹介したexpress-resourceが面倒を見てくれる。REST APIの場合はビューと呼ぶほどのものではないが、APIの出力形式をXML、JSONと複数対応するにはコンテントネゴシエーションが強力なビュー機能を提供してくれると言える。 さて、今回はモデル(M)に相当する部分を作る際に欠かせないSequelizeを紹介しよう。 Sequelizeを使うと、DBのスキーマやデータを、node.jsアプリケーション内でJavaScriptオブジェクトとして扱えるようになる。いわゆるO/Rマッパーを実現してくれる。MySQLSQLite、 PostgreSQLと主なオープンソースのRDBMSはサポートされており、RDBMS毎に微妙に異なるSQLの方言などを吸収してくれるので、仮に開発過程でRDBMSを乗り換えることがあっ

    node.jsでSequelizeを使うための準備/前編 | Inhale n' Exhale