こんにちは。
本日はMYSQL操作の基本メモです。
概要
MYSQLの基本。
MYSQLと接続して、対象のテーブルから全データを取得する。
ソースの構成
-- app.js -- public -- style.css -- views -- index.ejs
ソースの紹介
app.jsとindex.ejsの紹介をします。
app.js
基本メモということで、全データの表示のサンプル。
var express = require('express'); var mysql = require('mysql'); var app = express(); app.set('view engine', 'ejs'); app.use(express.static('public')); // MySQLの設定情報 const mysql_setting = { host : 'ホスト', user : 'ユーザー', password : 'パスワード', database : '対象のデータベース' }; app.get('/',(req, res, next) => { // コネクションの用意 var connection = mysql.createConnection(mysql_setting); // データベースに接続 connection.connect(); // データを取り出す connection.query('SELECT * from 対象のテーブル名', function (error, results, fields) { if (error == null) { var data = {title:'mysql',content:results}; res.render('index.ejs', data); } }); // 接続の解除 connection.end(); }); var server = app.listen(3000, () => { console.log('Server Start!'); });
今回はmysqlモジュールを使っています。
以下は自分が使用するデータベースの設定を保持します。
この設定を使って接続します。
const mysql_setting = { host : 'ホスト', user : 'ユーザー', password : 'パスワード', database : '対象のデータベース' };
設定を使用してあとは
- 接続
- データの操作
- 接続の解除
をするだけです。
この流れはデータの作成、削除、編集でも同じです。
// 設定を使用してコネクションの用意 var connection = mysql.createConnection(mysql_setting); // データベースに接続 connection.connect(); // 全データを取り出し、完了したら表示処理を行う connection.query('SELECT * from 対象のテーブル名', function (error, results, fields) { if (error == null) { // データベースアクセス完了時の処理 var data = {title:'mysql',content:results}; res.render('index.ejs', data); } }); // 接続を解除 connection.end();
index.ejs
表示テンプレートです。
contentにはデータベースから取得したデータが入っているので
ループで回して変数のobjに取り出し
各フィールドの値を出力しています。
<!DOCTYPE html> <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title><%= title %></title> <link rel='stylesheet' href='./style.css' /> </head> <body> <head> <h1><%= title %></h1> </head> <div role="main"> <table> <% for(var i in content) { %> <tr> <% var obj = content[i]; %> <th><%= obj.id %></th> <td><%= obj.name %></td> <td><%= obj.mail %></td> <td><%= obj.age %></td> </tr> <% } %> </table> </div> </body> </html>
以上になります。