#Node.jsを用いてMySQLにデータを登録する
※ 自分用の覚え書きでございます。
Node.jsを用いてMySQLにデータを登録します。ローカル環境で実行しています。
###MySQLに作成したテーブル
f_id , f_name , f_age という3つのフィールドを作成しました。
###Node.js側の記述
/ (localhostのルート) にアクセスしたとき、SELECT文を実行します。
/entry に post したとき、INSERT文を実行します。
app.js
const express = require('express');
const mysql = require('mysql');
const app = express();
app.use(express.urlencoded({extended: false}));
const connection = mysql.createConnection({
host: 'localhost',
user: '********',
password: '********',
database: 'db_users'
});
app.get('/', (req, res) => {
connection.query(
'SELECT * FROM tbl_users',
(error, results) => {
res.render('index.ejs', {items: results});
}
);
});
app.get('/entry', (req, res) => {
res.render('entry.ejs');
});
app.post('/entry', (req, res) => {
connection.query(
'INSERT INTO tbl_users (f_name, f_age) VALUES (?, ?)',
[req.body.userName, req.body.userAge],
(error, results) => {
res.redirect('/');
}
);
});
app.listen(3000);
localhostにアクセスしたときの画面表示 : index.ejs
index.ejs
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>db_users</title>
</head>
<body>
<a href="/entry">+ 新規登録</a>
<ul>
<li>
<span>ID</span>
<span>名前</span>
<span>年齢</span>
</li>
</ul>
<ul>
<% items.forEach((item) => { %>
<li>
<span><%= item.f_id %></span>
<span><%= item.f_name %></span>
<span><%= item.f_age %></span>
</li>
<% }) %>
</ul>
</body>
</html>
/entry の画面表示 : entry.ejs
entry.ejs
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>db_users</title>
</head>
<body>
<form action="/entry" method="post">
名前:<input type="text" name="userName">
年齢:<input type="number" name="userAge">
<input type="submit" value="登録">
</form>
</body>
</html>
###ブラウザからデータを登録
・localhostにアクセスします。
→いま、2人登録されています。
・新規登録をクリックすると入力フォームが表示されます。
→やまださぶろう さんを登録します。
・登録をクリックすると入力されたデータが登録、表示されます。
→やまださぶろう さんが登録されました。