Node.js(express)+sequelize(MySQL)の環境構築とDB接続

どうも!ヒグッティです!今回はNode.js(express)とsequelizeが使えるように環境構築をしたいと思います。ゆくゆくはチケット予約のWebアプリ的なものを作成していきたいと思います。DBはMySQLを利用します。Node.jsは触ったことがなかったので、今更ですが勉強していきます!!

最近、teamLabに行ってきたのですが、チケット予約サイトを見て、Node.jsの勉強がてら、チケット予約サイトを作ろうと思いました。

本記事の内容

Node.js(express)とsequelizeを開発する上での環境構築方法とDBへの接続方法について記載します。

これからNode.jsを学習したい人は是非参考にしてください。

念のため、express、sequelizeの公式サイトも参考にしてください。

expressの公式サイト sequelizeの公式サイト

前提

基本的に自分のPC環境で実行します。諸々のバージョンは以下です。Node.jsとMySQLのインストール手順は割愛します。

  • Windows10
  • MySQL 8.0.11
  • Node.js v14.18.0

Node.js(express)の準備

Node.js(以下、express)の準備をします。以下の順番で実施します。

  1. 任意のホームディレクトリを作成
  2. expressをインストール
  3. 動作確認

1で任意のディレクトリ(今回はticket)を作成し移動します。

mkdir ticket

cd ticket

2でexpressをインストールします。

npm init -y
npm install express
npm install nodemon

app.jsの作成。以下、サンプルコードです。

const express = require('express')
const app = express()

app.get('/', (req, res) => res.send('Hello World!'))

app.listen(3000)

3で以下のコマンドを実施後、「http://localhost:3000/」にアクセスし画面にHello World!と表示されていることを確認してください。

npx nodemon app.js

expressの準備は完了!

sequelizeをインストールしていきます。以下のコマンドを実施。

sequelizeの準備

以下のコマンドを実行しインストールします。

npm install –save sequelize
npm install -g sequelize-cli
npm install –save mysql2
npx sequelize-cli init

インストールが終わったら各設定を見ていきます。

config.jsonの準備

ticket/config/config.jsonを編集します。DBの接続情報を記載してください。

今回はdevelopmentのみを利用します。各環境に応じてDBのユーザ名やパスワードは適宜入力してください。

{
  "development": {
    "username": "root",
    "password": null,
    "database": "database_deve",
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
  "test": {
    "username": "root",
    "password": null,
    "database": "database_test",
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
  "production": {
    "username": "root",
    "password": null,
    "database": "database_production",
    "host": "127.0.0.1",
    "dialect": "mysql"
  }
}

テーブルの作成

以下のコマンドを実行しテーブル作成のひな型ファイルを作成します。今回はUsersという名前でテーブルを作成します。

npx sequelize-cli model:generate –name Users –attributes name:string,email:string

コマンド実行後、「ticket/models/users.js」が作成されているはずです。

以下のコマンドを実行しテーブルを作成します。

npx sequelize-cli db:migrate –env development

DBを確認しusersテーブルが作成できているはずです。テーブルを確認できたらsequelizeの準備は完了です!

expressからテーブルへCRUDをしてみる

先ほど作成したusersテーブルへexpressから操作できることを確認してみます。ticket/app.jsを以下に書き換えます。

const express = require('express')
const User = require('./models').Users;

const app = express()

app.get('/', (req, res) => res.send('Hello World!'));
//登録
app.get('/regist', (req, res) => {
    User.create({ name: 'testuser', email: 'test@test.com' }).then(user => {
        res.send('regist complete! ' + user.name + ' ' + user.email);
    });
});
//更新
app.get('/update', (req, res) => {
    User.update({ name: 'testuser', email: 'testupdate@test.com' },{where:{}}).then(user => {
        res.send('update complete! ');
    });
});
//削除 all delete
app.get('/alldel', (req, res) => {
    User.destroy({where: {
    }});
    res.send('delete complete! ');
});
//検索
app.get('/search', (req, res) => {
    User.findAll().then(users => {
        res.send(users);
    });
});

app.listen(3000)

「const User = require('./models’).Users;」でusersテーブルのmodelを生成します。

あとは以下のように記述しCRUDできることを確認します。今回は検索条件などは追加していません。

  • 検索 User.destroy({where: {}});
  • 登録 User.create({ name: 'testuser’, email: 'test@test.com’ }).then()
  • 更新 User.update({ name: 'testuser’, email: 'testupdate@test.com’ },{where:{}}).then()
  • 削除 User.destroy({where: {}});

これでCRUDの確認ができました!

まとめ

環境構築からDB接続までできました。始めてから2時間くらいでDB確認ができました。javaのspringbootなどに比べるとsequelizeでのDB接続は直観でわかりやすいです。小規模のWebアプリ作成などに向いていそうですね。大規模システムはできるのかな?今後勉強していきます。次はアプリっぽいものを作成していこうかなー

  • npmでインストールするだけだから構築は簡単
  • sequelizeによりSQL文を記述しなくてよい、使い方は他のORMと似たような感じなのでORMの経験があれば学習コストは低い。

その他

もしよかったら過去にVueのサンプルアプリを作った記事が良かったら見ていってください。

【Vue.js3】Web初心者がVuexでアンケートアプリを作ってみた!

スポンサーリンク