Node.jsを用いてMySQLにデータを登録する
※ 自分用の覚え書きでございます。
Node.jsを用いてMySQLにデータを登録します。ローカル環境で実行しています。
MySQLに作成したテーブル
f_id , f_name , f_age という3つのフィールドを作成しました。
Node.js側の記述
/ (localhostのルート) にアクセスしたとき、SELECT文を実行します。
/entry に post したとき、INSERT文を実行します。
app.js
constexpress=require('express');constmysql=require('mysql');constapp=express();app.use(express.urlencoded({extended:false}));constconnection=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><metacharset="utf-8"><title>db_users</title></head><body><ahref="/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><metacharset="utf-8"><title>db_users</title></head><body><formaction="/entry"method="post">名前:<inputtype="text"name="userName">年齢:<inputtype="number"name="userAge"><inputtype="submit"value="登録"></form></body></html>
ブラウザからデータを登録
・localhostにアクセスします。
→いま、2人登録されています。
・新規登録をクリックすると入力フォームが表示されます。
→やまださぶろう さんを登録します。
・登録をクリックすると入力されたデータが登録、表示されます。
→やまださぶろう さんが登録されました。