Membuat CRUD Sederhana Menggunakan Expressjs Dan MySQL PART 1 : Inisiasi Projek

Expressjs

Fullstack development menggunakan express dan template engine ejs

Kali ini saya akan berbagi tutorial cara membuat crud sederhana dengan stack backend menggunakan expressjs sedangkan untuk frontend kita menggunakan template engine ejs. Semuanya distaukan dalam satu folder dan server yang sama seperti laravel dengan blade.

Ok langsung buka terminal dan ketikan perintah berikut disini saya menggunakan bantuan express generator ya, jika belum install install dahulu express generatornya via npm

npm install -g express-generator

Lalu buat projek nya dengan perintah sebagai berikut

express --view=ejs simple-blog

Sesudah projek terbuat kita install package nodemon yang berguna untuk hot reload server ketika ada perubahan di code kita.

npm install && npm install nodemon

Lalu kita test apakah sudah berjalan atau belum ketikan pertintah berikut di terminal

npm start
Server ruuning

Setelah itu cek di browser aplikasi kita sudah berjalan atau belum dengan default port 3000 http://localhost:3000/

Expressjs running

Mengubah page 404 dan menambahkan style bootstrap

Selanjutnya kita akan menambahkan style bootstrap dan mengubah halaman 404 kita dengan cara sebagai berikut. Dowload jquery dan bootstrap nya terlebih dahulu lalu masukan ke folder public/stylesheet untuk css public/javascript untuk file js sehingga di folder kita menjadi seperti ini

Struktur Folder

Edit file app.js pada bagian error handler ubah menjadi seperti ini

// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};

// render the error page
res.status(err.status || 500);
res.render('error',{title:"404 Not Found"});
});

Lanjut kita akan memecah file ejs yang berisikan script html menjadi seperti ini buat file dengan nama header.ejs dan footer.ejs di dalam folder views

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><%= title %></title>
<link href="/stylesheets/bootstrap.min.css"
rel="stylesheet" id="bootstrap-css">
</head>
<body>


<script src="/javascripts/jquery.min.js"></script>
<script src="/javascripts/bootstrap.min.js"></script>
</body>
</html>

Masih di dalam folder views ubah file error.ejs menjadi seperti ini

<% include header %>
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="error-template">
<div class="error-details">
<h1><%= message %></h1>
<h2><%= error.status %></h2>
<pre><%= error.stack %></pre>
</div>
<div class="error-actions">
<a href="/" class="btn btn-primary btn-lg">
Take Me Home </a>
</div>
</div>
</div>
</div>
</div>
<% include footer %>

Buka browser dan test kembali mengakses url http://localhost:3000/asal jika berhasil akan muncul seperti pada gambar dibawah ini

Hakaman 404

Layouting halaman index, tambah dan edit

Lanjut kita akan memodifikasi halaman index atau halaman utama kita dan menambahkan halaman edit dan tambah blog, di dalam folder view edit file index.js menjadi seperti ini

<% include header %>
<div class="container">
<div class="row">
<div class="col-md-12">
<br><br>
<a href="/add" class="btn btn-sm btn-success">Add</a><br><br>
<table class="table table-bordered">
<tr>
<th>No</th>
<th>Judul</th>
<th>Deskripsi</th>
<th>Gambar</th>
<th>Aksi</th>
</tr>
<tbody>
<tr>
<td>1</td>
<td>judul</td>
<td>test</td>
<td>image</td>
<td>
<a href="/edit/:id" class="btn btn-sm btn-primary">Edit</a>
<a href="/delete/:id" class="btn btn-sm btn-danger">Delete</a>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<% include footer %>

Masih di dalam folder view buat file dengan nama add.ejs

<% include header %>
<div class="container">
<div class="row">
<div class="col-md-12">
<br><br>
<form enctype="multipart/form-data" method="POST" action="/save">
<div class="form-group">
<label for="exampleInputEmail1">Judul</label>
<input type="text" name="judul" class="form-control"
placeholder="Enter Judul">
</div>
<div class="form-group">
<label for="exampleInputPassword1">Deskripsi</label>
<textarea name="deskripsi" class="form-control"></textarea>
</div>
<div class="form-group">
<label for="exampleInputEmail1">Gambar</label>
<input type="file" name="gambar" class="form-control">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
</div>
<% include footer %>


<% include header %>
<div class="container">
<div class="row">
<div class="col-md-12">
<br><br>
<form enctype="multipart/form-data" method="POST" action="/save">
<div class="form-group">
<label for="exampleInputEmail1">Judul</label>
<input type="text" name="judul" class="form-control"
placeholder="Enter Judul">
</div>
<div class="form-group">
<label for="exampleInputPassword1">Deskripsi</label>
<textarea name="deskripsi" class="form-control"></textarea>
</div>
<div class="form-group">
<label for="exampleInputEmail1">Gambar</label>
<input type="file" name="gambar" class="form-control">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
</div>
<% include footer %>

Selanjutnya buat file dengan nama blog.js di dalam folder routes lalu ketikan code berikut

var express = require('express');
var router = express.Router();

/* GET blog page. */
router.get('/add', function(req, res, next) {
res.render('add', { title: 'Express Add Blog' });
});

router.get('/edit/:id', function(req, res, next) {
res.render('edit', { title: 'Express Edit Blog' });
});

module.exports = router;

Dan edit file app.js  menjadi seperti ini 

app.js

Joss lanjut buka browser buka kembali http://localhost:3000/ akan tampil halaman dengan list tabel untuk nanti menampilkan list
List tabel

Halaman add atau edit

Oke untuk part 1 cukup sampai disini lanjut nanti ke part selanjutnya terima kasih semoga bermanfa'at, source code ada disini

Posting Komentar

0 Komentar