なんだかGoodVibes

日々の勉強メモです。

【Node】MYSQL操作の基本(データベースへの接続)

こんにちは。
本日は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>



以上になります。