前々回の下記記事の続き。
次は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%引きの今が良いかも知れない。
コメント