モデルを作成する
モデルをファイルを分けて作成します。
モデルをファイルを分けて作成します。
「 app.js 」ファイルに以下を追記します。
var usersRouter = require('./routes/users');
app.use('/users', usersRouter);
const mysql = require('mysql2/promise');
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
database: 'users',
password: 'password',
});
module.exports = pool;
const mysql = require('mysql2/promise');
const pool = require('../db');
module.exports = {
allUser: () => {
return new Promise ((resolve, reject) => {
(async () => {
try {
const [results, fields] = await pool.query('SELECT * FROM users');
resolve(results);
} catch (err) {
console.log(err);
}
})();
});
}
}
var express = require('express');
var router = express.Router();
const Users = require('../models/User');
router.get('/', function(req, res, next) {
Users.allUser().then((result) =>{
let data = { users: result };
res.render('users/index', data);
});
});
module.exports = router;
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>User - index</title>
</head>
<body>
<div id="header">
<h1>User Index</h1>
</div>
<div id="content">
<table>
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
</tr>
<% for(let i in users){ %>
<% let obj = users[i]; %>
<tr>
<td><%= obj.id %></td>
<td><%= obj.name %></td>
<td><%= obj.age %></td>
</tr>
<% } %>
</table>
</div>
</body>
</html>