Aug 9, 2024
node -vnpm -vmkdir tutorialDBNodenpm init -ytouch server.jsnpm i express mysql body-parser ejs
const express = require('express');
const mysql = require('mysql');
const bodyParser = require('body-parser');
const app = express();
const PORT = 3000;
app.listen(PORT, () => { console.log(`Server running on port ${PORT}`); });
const db = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'school'
});
db.connect(err => {
if (err) throw err;
console.log('Database connected');
});
app.get('/', (req, res) => {
db.query('SELECT * FROM users', (err, results) => {
if (err) throw err;
res.render('index.ejs', { users: results });
});
});
app.post('/add', (req, res) => {
const { name, class } = req.body;
db.query(`INSERT INTO users (name, class) VALUES ('${name}', '${class}')`, (err, result) => {
if (err) throw err;
res.redirect('/');
});
});
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));
index.ejs untuk menampilkan data:
<h1>Data Siswa</h1>
<table>
<tr>
<th>ID</th>
<th>Name</th>
<th>Class</th>
</tr>
<% users.forEach(user => { %>
<tr>
<td><%= user.id %></td>
<td><%= user.name %></td>
<td><%= user.class %></td>
</tr>
<% }); %>
</table>
```__
<form action="/add" method="POST">
<input type="text" name="name" placeholder="Nama Lengkap">
<input type="text" name="class" placeholder="Kelas">
<button type="submit">Tambah Murid</button>
</form>