Pada tulisan sebelumnya kita sudah memiliki model dan tabel user. Sekarang saatnya kita melakukan operasi CRUD, Create, Read, Update dan Delete.
Buatlah file route pada folder routes
dengan nama user.router.js yang isinya seperti berikut.
const router = require("express").Router();
const userController = require("../controller/user.controller.js");
router.post("/", userController.createUser);
router.get("/", userController.readUser);
router.put("/:id", userController.updateUser);
router.delete("/:id", userController.deleteUser);
module.exports = router;
Buatlah file pada folder controller
dengan nama user.controller.js yang isinya seperti berikut.
const model = require("../models");
function createUser(req, res) {}
function readUser(req, res) {}
function updateUser(req, res) {}
function deleteUser(req, res) {}
module.exports = {
createUser,
readUser,
updateUser,
deleteUser,
};
Route yang akan kita buat adalah berikut.
Create
Create yang berarti kita menambahkan data baru ke database. Untuk menambahkan data baru, silahkan modifikasi function createUser
menjadi.
function createUser(req, res) {
model.User.create({
name: req.body.name,
label: req.body.label,
picture: req.body.picture,
email: req.body.email,
phone: req.body.phone,
website: req.body.website,
summary: req.body.summary,
})
.then(function (result) {
res.json(result);
})
.catch(function (error) {
res.json({ error: error });
});
}
req.body
diambil dari data body sesuai dengan fieldnya yang dikirimkan oleh insomnia atau pada web nyata adalah dari form input. Ini akan berfungsi jika pada server kita beri middleware untuk menghandle nya.
Middleware lebih jelas akan kita bahas selanjutnya.
Ubah file index.js
sehingga menjadi seperti berikut.
const express = require("express");
const app = express();
const router = require("./routes/router.js");
app.use(express.urlencoded({ extended: true }));
app.use("/", router);
app.listen(5000, function () {
console.log(`Server running on http://localhost:5000`);
});
module.exports = app;
Dan hubungkan router user pada file router.js
, sehingga file router.js
menjadi seperti berikut.
const router = require("express").Router();
const jodoh = require("../controller/jodoh.controller.js");
const user = require("./user.router.js");
router.use("/users", user);
router.get("/", function (request, response) {
response.send("Webserver asrul.dev");
});
router.get("/cari-jodoh", jodoh.getJodoh);
router.post("/cari-jodoh", jodoh.setJodoh);
router.put("/cari-jodoh", jodoh.updateJodoh);
router.delete("/cari-jodoh", jodoh.deleteJodoh);
router.get("/about", (req, res) => {
res.send(
"ini rute /about " + req.query.nama + " dan umurnya " + req.query.umur
);
});
router.get("/profile", (req, res) => {
res.redirect("/login");
});
router.get("/login", (req, res) => {
res.send("silahkan Login terlebih dahulu");
});
module.exports = router;
Lakukan pengujian menggunakan insomnia dan gunakan form untuk mengentri data, perhatikan gambar.
Hasilnya akan tersimpan kedalam database.
Read
Read adalah membaca atau menarik data dari database. Langsung saja ubah function readUser
menjadi seperti berikut.
function readUser(req, res) {
model.User.findAll()
.then(function (result) {
res.json(result);
})
.catch(function (error) {
res.json({ error: error });
});
}
Sebelumnya saya telah menambahkan data Anis Fikriyyah. Sekarang silahkan kita uji menggunakan insomnia.
Update
Update adalah mengubah data yang sudah tersimpan dengan data yang baru.
Ubah function updateUser
menjadi seperti berikut.
function updateUser(req, res) {
model.User.update(
{
name: req.body.name,
label: req.body.label,
picture: req.body.picture,
email: req.body.email,
phone: req.body.phone,
website: req.body.website,
summary: req.body.summary,
},
{
where: {
id: req.params.id,
},
}
)
.then(function (result) {
res.json(result);
})
.catch(function (error) {
res.json({ error: error });
});
}
Terlihat bahwa sebelumnya Full Stack Dev telah berubah menjadi React Developer, lihat gambar berikut.
Delete
Untuk menghapus data maka ubah function deleteUser
sehingga menjadi berikut.
function deleteUser(req, res) {
model.User.destroy({
where: {
id: req.params.id,
},
})
.then(function (result) {
res.json(result);
})
.catch(function (error) {
res.json({ error: error });
});
}
Hasilnya akan seperti berikut.