JavaScript: Node.jsでWebアプリケーションを作るにあたってのデータベース設定の備忘録

前々回の下記記事の続き。

次はNode.js側でのmysqlを使う準備を。

4つ前、このNode.jsで〜の記事では2つ前の下記記事で作った、Webアプリケーションを作りたいフォルダに移動して作業を続ける。

Node.jsでmysqlを使用する、即ちNode.jsからMySQLに接続するには、mysqlのパッケージを利用する。

現時点でのpackage.jsonは下記の通り。

% cat package.json 
{
  "name": "myapp",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "ejs": "^3.1.6",
    "express": "^4.17.1"
  }
}

ここでnpmのmysqlパッケージをインストールするが、MySQL 8を使用している場合には、前回のエントリで記載した様に、mysql2をインポートする必要がある。
現時点の当方のpackage.jsonには、両方が入っている。

% npm install mysql           
added 9 packages, and audited 75 packages in 2s
found 0 vulnerabilities

% npm install --save mysql2
added 14 packages, and audited 89 packages in 2s
found 0 vulnerabilities

インストール後のpackage.jsonは下記の通り。
mysql、mysql2がdependenciesに入っているのが分かる。

% cat package.json 
{
(中略)
  "dependencies": {
    "ejs": "^3.1.6",
    "express": "^4.17.1",
    "mysql": "^2.18.1",
    "mysql2": "^2.3.3"
  }
}

パッケージをインストールしたので、ファイルにMySQLを利用する記述をする。

現在アプリケーションを作成しているフォルダの中身は以下の通り。

├── app.js
├── public
│   ├── css
│   │   └── style.cssっq
│   └── images
│       └── top.png
└── views
    ├── index.ejs
    └── top.ejs

この中で最初MySQLに関するコードを書くのはapp.jsのファイル。

app.jsファイルのデータベース設定の前が下記とする。

const express = require('express');
const app = express();
app.use(express.static('public'));

app.get('/', (req, res) => {
  res.render('top.ejs');
})

app.listen(3000);

Expressを使う為設定した1行目

const express = require(‘express’);

の下に、定数mysqlに’mysql2’を代入するコードを追記。

const mysql = require('mysql2');

MySQL 8を使用しているので、ここでmysql2を使用しているが、8より前なら、

const mysql = require(‘mysql’);

になる。

続いて、現在の2行目、3行目の
expressを使える様にする

const app = express();

やCSSや画像ファイルを置くフォルダを指定する

app.use(express.static(‘public’));

の後にMySQLとのconnectionを結ぶ為の接続情報を記載。

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: '*****',
  database: 'item_list'
});

接続情報の中身、host、user、 password、 databaseは上記でも記載のNode.jsでWebアプリケーションを作る際の、データベース(MySQL)準備の備忘録のエントリで確認した、自分で設定した際のデータを記述。

続いて、MySQLへの接続が出来なかった場合にエラーメッセージを返す書きコードを記載。

connection.connect((err) => {
  if (err) {
    console.log('error connecting: ' + err.stack);
    return;
  }
  console.log('success');
});

エラーだった場合、”error connecting: “に続いて吐き出されたエラーメッセージを繋げてターミナル等に出力してくれる。
これは前回記事でも助かった必須のコード。

設定後のapp.jsはこんな感じ。

const express = require('express');
const mysql = require('mysql2');
const app = express();
app.use(express.static('public'));

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: '*****',
  database: 'item_list'
});

connection.connect((err) => {
  if (err) {
    console.log('error connecting: ' + err.stack);
    return;
  }
  console.log('success');
});

app.get('/', (req, res) => {
  res.render('top.ejs');
})

app.listen(3000);

以上、Node.jsでのデータベースを設定の備忘録。

データベースと接続できたら、元々HTMLファイル(ejsファイル)にベタうちしていたアイテムリストを、データベースから取得する形に変更し、ブラウザから新規作成、削除、更新が出来る様にしていくが、この辺りは悩む所があれば書く予定。

「HELLO,DESIGN 日本人とデザイン」
題名で損しているが、中身はとても参考になる「デザイン思考」についての本。
特に3章の「質の高い問い」については目から鱗だった。
2019年に出た本なので、中古だと送料込みで600円位なんだけど、リフロー型で使い勝手が良く置き場所を取らないKindle版を買うなら14%引きの今が良いかも知れない。

コメント

タイトルとURLをコピーしました