お仕事の関係でnode.jsのサーバーサイドをがっつり弄ることになったけど
頂いた開発環境が良くできすぎていて何が起こっているのかさっぱりだったので
最低限の環境を自分で作ってみます。

今回は CentOS に MySQL と Node.jsでRest APIのシンプルな環境。
MySQLのORMであるSequelizeは触ったことはあったけどmigrationもscaffoldもやったことがなかったので
そのあたりの環境構築のお話。

まずはサーバー構築から。コスパ重視でConohaVPSで動かしてます。

DBとかOS寄りの話は割愛。とりあえずこれ見れば全部できる。

ここから本番。

swaggerをinstallする。swagger自体には色々な機能がある。
Swaggerの概要をまとめてみた。 – Qiita

何はともあれインストール。

この時に使うフレームワークは何か?と聞かれるので「express」を選択。
他もそのうち触ってみたい。

プロジェクトを作成

プロジェクトを起動

一旦ここまででデフォルトのポート10010で http://x.x.x.x:10010/hello にアクセスするといい感じにAPIっぽくなってる。

MySQLのORM「Sequelize」をインストール
Sequelizeを使用してデータベースを操作するための基本的な情報 – Qiita

npmコマンドの –save オプションは package.jsonのdependenciesに追記するためのもの。
これ入れ忘れるとinstallしたのにsequelizeなんてないって言われるけど!!!ってなる。

Sequelizeのコマンドを使用するためにswquelize-cliが必要。

SequelizeのコマンドでDB接続周りの設定を初期化

すると必要なフォルダとconfigファイルが生まれる。
プロジェクト内のconfig/config.jsonを開くとjsonで環境ごとのDBの接続先が定義されているので
環境に合わせて変更する。

モデルを自動で生成してさらにいい感じにテーブルまで作る。(migration)
Node.jsのSequelizeでDBのmigrationを実行する – Qiita

するとuser.jsと言うのがmodels配下にできる。

カラムと型等定義されてるのがわかる。 Lengthの設定とかもしたいときは上のQiitaのページで教えてくれてるので手でいじる。

さらにmigration配下に
テーブル定義の書かれたものが出来上がる。
桁とかNull許容とかIndexとかここに追記していくことになる。

Migrationしてテーブルを作成する

migration配下のjsの分だけテーブルが作成される。

今回使うことはないけど念のためにscaffoldもやってみた。適当にテーブルを作っておく。

こちらは追加のモジュールが必要なのでインストール
Sequelize-Autoを使ってみた。 – Qiita

インストール。グローバルに

node.jsでMySQLを使えるようにする

新しいバージョンのMySQLとかMariaDBだとMySQL2も入れろって言われる可能性。

DBの中身を読み取っていい感じにモデルを生成

するとmodels配下にいい感じにjsが増えてる。

一旦ここまでで環境構築完了!