## FSD ## Seeder ```js "use strict"; const { user, book, author, book_author, order, order_detail, } = require("../../models"); /** @type {import('sequelize-cli').Migration} */ module.exports = { /** * @param {import('sequelize').QueryInterface} queryInterface * @param {import('sequelize').Sequelize} _Sequelize */ async up(queryInterface, _Sequelize) { await order_detail.destroy({ truncate: true }); await order.destroy({ truncate: true }); await book_author.destroy({ truncate: true }); await author.destroy({ truncate: true }); await book.destroy({ truncate: true }); await user.destroy({ truncate: true }); await queryInterface.bulkInsert("users", [ { id: 1, name: "John Doe", email: "test@example.com", shipping_address: "Jember, Jawa Timur, Indonesia", password: "$2a$12$.HOb8SlLxGN4usHDihNaQe6IFDodXO09pO6Nfi.M96XzcTJ9F1HDu", }, ]); await queryInterface.bulkInsert("books", [ { id: 1, isbn: "1234567801", title: "Book 1", price: 10000 }, { id: 2, isbn: "1234567802", title: "Book 2", price: 20000 }, { id: 3, isbn: "1234567803", title: "Book 3", price: 30000 }, { id: 4, isbn: "1234567804", title: "Book 4", price: 40000 }, { id: 5, isbn: "1234567805", title: "Book 5", price: 50000 }, { id: 6, isbn: "1234567806", title: "Book 6", price: 60000 }, { id: 7, isbn: "1234567807", title: "Book 7", price: 70000 }, { id: 8, isbn: "1234567808", title: "Book 8", price: 80000 }, { id: 9, isbn: "1234567809", title: "Book 9", price: 90000 }, { id: 10, isbn: "1234567810", title: "Book 10", price: 100000 }, { id: 11, isbn: "1234567811", title: "Book 11", price: 110000 }, { id: 12, isbn: "1234567812", title: "Book 12", price: 120000 }, { id: 13, isbn: "1234567813", title: "Book 13", price: 130000 }, { id: 14, isbn: "1234567814", title: "Book 14", price: 140000 }, { id: 15, isbn: "1234567815", title: "Book 15", price: 150000 }, { id: 16, isbn: "1234567816", title: "Book 16", price: 160000 }, { id: 17, isbn: "1234567817", title: "Book 17", price: 170000 }, { id: 18, isbn: "1234567818", title: "Book 18", price: 180000 }, { id: 19, isbn: "1234567819", title: "Book 19", price: 190000 }, { id: 20, isbn: "1234567820", title: "Book 20", price: 200000 }, { id: 21, isbn: "1234567821", title: "Book 21", price: 210000 }, { id: 22, isbn: "1234567822", title: "Book 22", price: 220000 }, { id: 23, isbn: "1234567823", title: "Book 23", price: 230000 }, { id: 24, isbn: "1234567824", title: "Book 24", price: 240000 }, { id: 25, isbn: "1234567825", title: "Book 25", price: 250000 }, { id: 26, isbn: "1234567826", title: "Book 26", price: 260000 }, { id: 27, isbn: "1234567827", title: "Book 27", price: 270000 }, { id: 28, isbn: "1234567828", title: "Book 28", price: 280000 }, { id: 29, isbn: "1234567829", title: "Book 29", price: 290000 }, { id: 30, isbn: "1234567830", title: "Book 30", price: 300000 }, ]); await queryInterface.bulkInsert("authors", [ { id: 1, name: "Author 1", biography: "Biography 1" }, { id: 2, name: "Author 2", biography: "Biography 2" }, { id: 3, name: "Author 3", biography: "Biography 3" }, { id: 4, name: "Author 4", biography: "Biography 4" }, { id: 5, name: "Author 5", biography: "Biography 5" }, ]); await queryInterface.bulkInsert("book_authors", [ { book_id: 1, author_id: 1 }, { book_id: 1, author_id: 2 }, { book_id: 1, author_id: 3 }, { book_id: 2, author_id: 2 }, { book_id: 2, author_id: 4 }, { book_id: 3, author_id: 1 }, { book_id: 3, author_id: 3 }, { book_id: 4, author_id: 4 }, { book_id: 5, author_id: 5 }, { book_id: 6, author_id: 1 }, { book_id: 7, author_id: 2 }, { book_id: 8, author_id: 3 }, { book_id: 9, author_id: 4 }, { book_id: 10, author_id: 5 }, { book_id: 11, author_id: 1 }, { book_id: 12, author_id: 2 }, { book_id: 13, author_id: 3 }, { book_id: 14, author_id: 4 }, { book_id: 15, author_id: 5 }, { book_id: 16, author_id: 1 }, { book_id: 17, author_id: 2 }, { book_id: 18, author_id: 3 }, { book_id: 19, author_id: 4 }, { book_id: 20, author_id: 5 }, { book_id: 21, author_id: 1 }, { book_id: 22, author_id: 2 }, { book_id: 23, author_id: 3 }, { book_id: 24, author_id: 4 }, { book_id: 25, author_id: 5 }, { book_id: 26, author_id: 1 }, { book_id: 27, author_id: 2 }, { book_id: 28, author_id: 3 }, { book_id: 29, author_id: 4 }, { book_id: 30, author_id: 5 }, ]); await queryInterface.bulkInsert("orders", [ { id: 1, customer_id: 1, order_date: new Date(), shipping_address: "Jember, Jawa Timur, Indonesia", total: 50000, }, { id: 2, customer_id: 1, order_date: new Date(), shipping_address: "Jember, Jawa Timur, Indonesia", total: 250000, }, ]); await queryInterface.bulkInsert("order_details", [ { order_id: 1, book_id: 1, quantity: 1, price: 10000, subtotal: 10000 }, { order_id: 1, book_id: 2, quantity: 2, price: 20000, subtotal: 40000 }, { order_id: 2, book_id: 3, quantity: 3, price: 30000, subtotal: 90000 }, { order_id: 2, book_id: 4, quantity: 4, price: 40000, subtotal: 160000 }, ]); }, /** * @param {import('sequelize').QueryInterface} _queryInterface * @param {import('sequelize').Sequelize} _Sequelize */ async down(_queryInterface, _Sequelize) { /** * Add commands to revert seed here. * * Example: * await queryInterface.bulkDelete('People', null, {}); */ }, }; ``` ## Run migration & seder ```bash sequelize db:migrate ``` ## Basic express js ``` const path = require("path"); require("dotenv").config({ path: path.join(__dirname, "../.env") }); const express = require("express"); const app = express(); app.use(express.urlencoded({ extended: true })); app.use(express.json()); app.listen(process.env.SERVER_PORT || 3000, () => { console.log("Server Running"); }); ```