Node.jsのフレームワークExpress.jsを使いMysqlの接続

Node.jsのフレームワークExpressを使い、Mysqlと接続、クエリ文によるデータベースの操作を行います。

目次

1.本稿の実行環境
(1)ホストOS
 Windows 10 Pro
(2)仮想環境(VirtualBox)
 ・ゲストOS:CentOs8(Red Hat 64-bit)
 ・nodejs、及びnpmはインストール済
# node -v
v10.24.0
# npm –version
6.14.11

2.Expressを使ったMysqlの接続
(1)Express.jsのインストール
・ディレクトリを任意の名前で作成
ここでは、”crud-app”とした。
・パッケージ情報の作成
 作成したディレクトリに移動して、パッケージ情報を作成する。
# cd crud-app
 # npm init -y
 package.jsonファイルが作成される
・express.jsのインストール
 # npm install express

(2)MySQL接続ドライバのインストール
 express.jsからMySQLへ接続するためのドライバをインストールする。
 # npm install mysql

(3)データベースの作成
  予め、データベースを作成しておく。
  Mysqlに接続して、CREATE DATABASEコマンドでデータベース(crud_db)を作成する。

3.テーブルの作成
 connectionクラスのqueryメソッドを使って、テーブル作成のクエリを出力する。
app1.js

・サーバの起動
[root@localhost crud-app]# node app1.js
Connected
table created

・テーブルが作成されたことを確認する

4.テーブルデータの取得
(1)テーブルデータの作成
予め、テーブルデータを作成しておく。
sql文
INSERT INTO crud_db(フィールド,・・・) VALUES(値,・・・);

(2)テーブルデータの取得
 テーブルデータを取得し、ブラウザで表示する。
app2.js

アロー関数を使わない書き方
app3.js

(解説)
・connectionクラスのqueryメソッドを使ってクエリを出力する。queryメソッドでは第一引数にクエリを文字列で指定、第二引数にはコールバック関数を指定する。コールバック関数ではerror, results, fieldsの引数を用いることができ、errorにはクエリ実行時のエラー、resultsにはクエリ実行後の結果、fileldsにはクエリの結果のフィールドの情報が入る。
・サーバの起動
アロー関数を使ったプログラム
[root@localhost crud-app]# node app2.js
Connected
アロー関数を使わないプログラム
[root@localhost crud-app]# node app3.js
Connected

The end