Cara Membuat Aplikasi CRUD (Create, Read, Update, dan Delete) dengan Nodejs dan Mysql #1 : Insert Data. Di artikel ini admin akan membahas tutorial mulai dari cara instalasi dan nodeJS, cara instalasi package menggunakan npm, cara membuat layout, dan tentunya membuat crud di nodejs.
Tutorial Membuat CRUD dengan NodeJS |
Tutorial ini saya mulai dengan membuat insert data menggunakan Node.js dan MySQL.
Instalasi NodeJS
Langsung aja, pertama install dulu nodeJS di komputermu. Bagi pengguna windows cukup download node.js di web resminya yakni NodeJS kemudian lakukan instalasi sesuai instruksi ok.
Bagi pengguna linux saya telah membuat totorial sebelumnya, klik aja link Cara install node js dengan terminal di linux.
Selesai melakukan instalasi nodeJS, kita lanjut membuat folder untuk project aplikasi yang akan kita buat. Saya menamai project saya dengan nama Inponow-Node-Tutorial.
Konfigurasi Awal NodeJS
Buka Command Prompt (CMD) pada windows kalian, lalu arahkan ke directory project Inponow-Node-Tutorial, lalu ketikan npm init. like that :
![]() |
img-tutorial-nodejs-1 |
![]() |
img-tutorial-nodejs-2 |
![]() |
img-tutorial-nodejs-3 |
img-tutorial-nodejs-4 |
img-tutorial-nodejs-5 |
Penjelasan Singkat Dependencies yang Digunakan
Setting Database
img-tutorial-nodejs-6 |
Coding Time...
// inponow.blogspot.com
// mengimpor paket yang dibutuhkan
let session = require('express-session');
let app = express();
let server = require('http').createServer(app);
const mysql = require('mysql');
const jquery = require('jquery');
let flash = require('connect-flash');
// proses import done
// proses mendaftarkan modul - agar modul dapat digunakan saat melakukan layouting
app.use('/js', express.static(__dirname + '/node_modules/jquery/dist')); // redirect JS jQuery
app.use('/js', express.static(__dirname + '/node_modules/bootstrap/dist/js')); // redirect bootstrap JS
app.use('/css', express.static(__dirname + '/node_modules/bootstrap/dist/css')); // redirect CSS bootstrap
// end setting modul jquery dan bootstrap
// proses mendaftarkan modul - setting agar package session dan connect-flash bisa digunakan
app.use(session({
secret: 'inponow',
saveUninitialized: true,
resave: true
}));
app.use(flash());
// end setting session
// setting agar framework exporess bisa digunakan
app.use(express.static('public'));
app.use(express.urlencoded({
extended: false
}));
// end setting express
// setting views engine
app.set('views', './views');
app.set('view engine', 'ejs');
// end setting view
// isikan username dan password database dengan benar
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'chat',
});
// end settingd database connection
// nanti aplikasi dapat dilajankan melalui port 5000
server.listen(5000);
console.log('Server sedang Berjalan...')
// end port setting
// setting halaman utama web
app.get('/', function(req, res) {
res.render('indexu', {
session_flash: req.flash('signup_success')[0]
});
})
// end setting halaman utama
// menerima post data dari form register dilanjutkan melakukan insert ke database
app.post('/signup', (req, res) => {
connection.query(
'INSERT INTO cn_user (username, name, password) VALUES (?, ?, ?)',
[req.body.username, req.body.name, req.body.password],
(error, results) => {
if (results.affectedRows) {
req.flash('signup_success', 'Successfully added account...');
} else {
req.flash('signup_success', 'Something wring when added account...');
}
res.redirect('/');
}
)
});
//end insert from post register
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="/css/bootstrap.min.css">
<script src="/js/jquery.min.js" charset="utf-8"></script>
<script src="/js/bootstrap.min.js"></script>
<style media="screen">
body {
color: #000;
overflow-x: hidden;
height: 100%;
background-color: #e9e9e9;
background-repeat: no-repeat
}
.card0 {
box-shadow: 2px 2px 16px 2px #d8d8d8;
border-radius: 9px;
}
.card2 {
margin: 0px 40px
}
.text-sm {
font-size: 14px !important
}
::placeholder {
color: #BDBDBD;
opacity: 1;
font-weight: 300
}
:-ms-input-placeholder {
color: #BDBDBD;
font-weight: 300
}
::-ms-input-placeholder {
color: #BDBDBD;
font-weight: 300
}
input,
textarea {
padding: 10px 12px 10px 12px;
border: 1px solid lightgrey;
border-radius: 2px;
margin-bottom: 5px;
margin-top: 2px;
width: 100%;
box-sizing: border-box;
color: #2C3E50;
font-size: 14px;
letter-spacing: 1px
}
input:focus,
textarea:focus {
-moz-box-shadow: none !important;
-webkit-box-shadow: none !important;
box-shadow: none !important;
border: 1px solid #304FFE;
outline-width: 0
}
button:focus {
-moz-box-shadow: none !important;
-webkit-box-shadow: none !important;
box-shadow: none !important;
outline-width: 0
}
a {
color: inherit;
cursor: pointer
}
.btn-blue {
width: 150px;
border-radius: 2px;
background: #00A3FF !important;
color: white;
border-color: #00a3ff;
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.20) !important;
border-radius: 7.2px;
}
.btn-blue:hover {
background-color: #000;
color: white;
cursor: pointer
}
.bg-blue {
color: #fff;
background-color: #00A3FF
}
@media screen and (max-width: 991px) {
.border-line {
border-right: none
}
.card2 {
border-top: 1px solid #EEEEEE !important;
margin: 0px 15px
}
}
</style>
</head>
<body>
<div class="row register__">
<div class="col-md"></div>
<div class="col-md-8" style="top:7em">
<div class="px-1 px-md-5 mx-auto">
<div class="card card0 border-0">
<div class="row d-flex">
<div class="col-lg-12">
<div class="card2 border-0 card px-4 py-5">
<h4 class="pb-3">Inponow <span style="color:#00A3FF">Web Chat</span></h4>
<% if(session_flash != undefined){ %>
<div class="alert alert-info alert-dismissible fade show alert__" role="alert">
<strong style="font-size:13px"><%= session_flash %></strong>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<% } %>
<form action="/signup" method="post">
<div class="row">
<div class="col-md">
<label class="mb-1">
<h6 class="mb-0 text-sm">Username</h6>
</label>
<input class="mb-4" type="text" name="username" placeholder="Enter a valid username" autocomplete="off">
</div>
<div class="col-md">
<div class=""> <label class="mb-1">
<h6 class="mb-0 text-sm">Your Fullname</h6>
</label> <input class="mb-4" type="text" name="name" style="text-transform:capitalize;" autocomplete="off" placeholder="Enter a valid Email"> </div>
</div>
</div>
<div class="row px-3"> <label class="mb-1">
<h6 class="mb-0 text-sm">Password</h6>
</label> <input type="password" class="mb-4" name="password" placeholder="Enter password" autocomplete="off"> </div>
<div class="row mb-3 px-3 "> <button type="submit" class="btn btn-blue text-center">Register</button> </div>
<div class="row px-3"> <small class="font-weight-bold">Don't have an account? <a class="login" style="color:#FFB800">Login</a></small> </div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md"></div>
</div>
</body>
</html>
img-tutorial-nodejs-7 |
![]() |
gif-tutorial-nodejs |
Tidak ada komentar:
Posting Komentar