· 

Node.jsアプリケーションとMySQLを接続しよう!

Node.jsアプリケーションとMySQLを接続しよう!

目安時間:30分

この記事では、Node.jsアプリケーションとMySQLを接続する方法についてご紹介します。
◯ 必要なもの・知識
  • Node.jsがインストールされたPC
  • Node.js 学習コースⅠ~Ⅱの知識
  • SQL 学習コースⅠの知識
  • Node.jsの新規アプリケーションを作ろう!の知識
◯事前に読むことをお勧めする記事
  • MySQLのインストール
  • MySQLの使い方
  • Node.jsの新規アプリケーションを作ろう!

 

1. Node.jsアプリケーションとMySQLを接続しよう

基本となるアプリケーションの準備

MySQLを接続するアプリケーションを準備しましょう。
接続したいアプリケーションがない場合は、Node.jsの新規アプリケーションを作ろう!を参考に、簡単なアプリケーションを作ってください。

mysqlパッケージのインストール

まず最初にmysqlパッケージをインストールしましょう。
アプリケーションフォルダ(list-app)の直下で下記のコマンドを実行してください。
                npm install mysql

データベースとテーブルを作成しよう

今回は、以下のような構成のデータベースを使用します。カラム名や実際のデータは自由に作成してください。データベースの作り方についてはMySQLでデータベースを作成しようを参考にしてください。
データベース名: list_app
テーブル名: users

mysqlの設定情報を記述しよう

mysqlパッケージをapp.jsで読み込み、接続するMySQLの情報を記述していきましょう。
app.jsに以下の接続情報を記述してください。パスワードはインストール時に自分で設定したものを使ってください。
  • app.js
const express = require('express');
const mysql = require('mysql');

const app = express();

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: '設定したパスワード',
  database: 'list_app'
});
次に、MySQLへの接続ができていないときにエラーを表示するようにしましょう。
  • app.js
connection.connect((err) => {
  if (err) {
    console.log('error connecting: ' + err.stack);
    return;
  }
  console.log('success');
});
MySQLから情報を取得して表示するコードを書きましょう。今回は試しに、localhost:3000/にアクセスしたときにデータベースの内容が console.log()で出力されるようにします。
  • app.js
app.get('/', (req, res) => {
  connection.query(
    'SELECT * FROM users',
    (error, results) => {
      console.log(results);
      res.render('hello.ejs');
    }
  );
});

app.listen(3000);

 

最終的にapp.jsが以下のようになれば完成です。 
最後に、localhost:3000/にアクセスしたときに表示するビューファイルをviews/hello.ejsに作成しましょう。
  • views/hello.ejs
<h1>Hello World</h1>
app.jsを保存したら、node app.jsもしくはnodemon app.js を実行してサーバーを起動し、localhost:3000/にアクセスしてください。

 

ターミナルに以下のようにデータが表示されれば成功です!

(おまけ) 試しに接続情報を変えてみよう

 

データベースに接続できなかった場合にエラーメッセージが出力されることを確かめてみましょう。試しに以下のようにデータベース名を変更して、テーブル情報が表示されないことを確認しましょう。

 

接続情報を元に戻すことを忘れないようにな。