Agik Setiawan - October 05, 2022
Postingan kali ini saya akan mebagikan tutorial cara mudah menggunakan Database di dalam Express JS menggunakan salah satu plugin ORM (Object Relation Mapping) yaitu Prisma.
ORM adalah teknik yang mengubah tabel - tabel yang ada di database menjadi Object sehingga kita sebagai Programmer akan lebih mudah dalam melakukan Query ke database tanpa harus banyak memahami Query yang begitu kompleks. dengan ORM kita bisa dengan mudah melakukan Query ke berbagai macam Database dengan kode ORM yang sama.
Skema ORM
Install Express JS menggunakan Express JS Generator supaya lebih mudah dan lebih cepat
Buat folder dimana kita kan manaruh projectnya
mkdir express_prisma
Buka terminal dan masukan perintah:
npx express-generator --view=hbs
Masuk ke express_prisma lalu jalankan perintah
yarn install
atau
npm install
Jalankan perintah
yarn start
atau
npm run start
untuk menjalankan Express JS, lalu buka browser dan masukan URL http://localhost:3000
Jalankan perintah
yarn add prisma --dev
atau
npm install prisma --save-dev
Kemudian
yarn prisma
atau
npx prisma
Kemudian
yarn prisma init
atau
npx prisma init
Setelah menjalankan perintah di atas maka akan tebentuk struktur folder
Buatlah Database MySQL terlebih dahulu misalnya dengan nama “express_prisma”
Edit file .env
DATABASE_URL="mysql://root:mysql@localhost:3307/express_prisma"
Edit file prisma/schema.prisma
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
Kemudian buat schema di dalam “prisma/schema.prisma” contohnya User
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
email String @unique
name String?
}
Untuk membuat table - table di model menjadi table di MySQL caranya dengan memasukan perintah
yarn prisma db push
yarn prisma db generate
Jalankan “yarn prisma db generate” Setiap ada perubahan Schema
yarn prisma db generate
Setelah sukses maka di database akan terbentuk table baru
const prisma = require("@prisma/client")
const db = new prisma.PrismaClient()
module.exports = { db }
File routes/users.js
var express = require("express")
var router = express.Router()
const { db } = require("./../db.js")
/* GET users listing. */
router.get("/", async function (req, res, next) {
const users = await db.user.findMany()
res.status(200).json({
status: "success",
data: users,
})
})
/* Create User */
router.post("/", async function (req, res, next) {
const user = await db.user.create({
data: req.body,
})
res.status(200).json({
status: "success",
data: user,
})
})
/* Update User */
router.put("/:id", async function (req, res, next) {
const user = await db.user.update({
where: {
id: req.params.id,
},
data: req.body,
})
res.status(200).json({
status: "success",
data: user,
})
})
router.delete("/:id", async function (req, res, next) {
const user = await db.user.delete({
where: {
id: req.params.id,
},
})
res.status(200).json({
status: "success",
data: user,
})
})
module.exports = router
https://github.com/mister-coding/express_mysql_prisma
January 26, 2023
December 04, 2022
November 23, 2022
November 04, 2022
November 04, 2022
October 29, 2022
October 23, 2022
October 14, 2022
October 13, 2022