[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-cats-ngidenet":3,"blog-detail-ngidenet-belajar-nodejs-crud-mysql":20},{"items":4},[5,9,13,17],{"name":6,"slug":7,"count":8},"Digital Marketing","digital-marketing",41,{"name":10,"slug":11,"count":12},"Programming","programming",56,{"name":14,"slug":15,"count":16},"Tips","tips",75,{"name":18,"slug":19,"count":8},"Web Development","web-development",{"id":21,"slug":22,"title":23,"short_text":24,"excerpt":24,"cover":25,"cover_image":25,"cover_alt_text":25,"category":10,"tags":26,"published_at":27,"created_at":28,"full_text":29,"meta_title":25,"meta_description":30,"faqs":31,"images":32,"views_count":33},445,"belajar-nodejs-crud-mysql","Belajar NodeJs - Membuat CRUD dengan Nodejs & MySQL","Pada tutorial ini kita akan belajar nodejs yaitu bagaimana cara membuat CRUD (Create Update Delete) dengan Nodejs dan MySQL. CRUD adalah sebuah fungsi dasar yang biasanya ada dalam sebuah sistem aplik",null,[],"2021-02-27T16:00:00Z","2026-07-14T04:39:40.229870Z","\u003Cp>Pada tutorial ini kita akan belajar nodejs yaitu bagaimana cara membuat CRUD \u003Ci>(Create Update Delete)\u003C\u002Fi> dengan Nodejs dan MySQL.\u003C\u002Fp>\u003Cp>CRUD adalah sebuah fungsi dasar yang biasanya ada dalam sebuah sistem aplikasi yang berhubungan dengan database.\u003C\u002Fp>\u003Cp>Sebagai gambaran mengenai model CRUD yang kita buat dengan nodejs dan MySQL ini, kita akan membuat sebuah webserver dengan nodejs dimana nanti akan menerima request dari client, lalu diproses dan akan return response berupa object Json.\u003C\u002Fp>\u003Ch4>Daftar Isi:\u003C\u002Fh4>\u003Ch2>Perencanaan URL &amp; Method CRUD Nodejs\u003C\u002Fh2>\u003Cp>Kita akan membuat sebuah proses CRUD dengan object Products.\u003C\u002Fp>\u003Cp>Jadi nanti kita bisa mengambil list produk, membuat produk baru, mengupdate produk dan menghapusnya.\u003C\u002Fp>\u003Cp>Kira-kira seperti ini rancangan url yang akan kita buat.\u003C\u002Fp>\u003Ctable>\u003Ctr>\u003Ctd>Url\u003C\u002Ftd>\u003Ctd>Method\u003C\u002Ftd>\u003Ctd>Fungsi\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>http:\u002F\u002Flocalhost:8080\u002Fproducs\u003C\u002Ftd>\u003Ctd>GET\u003C\u002Ftd>\u003Ctd>Get List Products\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>http:\u002F\u002Flocalhost:8080\u002Fproducs?id=3\u003C\u002Ftd>\u003Ctd>GET\u003C\u002Ftd>\u003Ctd>Get 1 Products\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>http:\u002F\u002Flocalhost:8080\u002Fproducs\u003C\u002Ftd>\u003Ctd>POST\u003C\u002Ftd>\u003Ctd>Simpan Product\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>http:\u002F\u002Flocalhost:8080\u002Fproducs?id=1\u003C\u002Ftd>\u003Ctd>PUT\u003C\u002Ftd>\u003Ctd>Update Product berdasarkan id\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>http:\u002F\u002Flocalhost:8080\u002Fproducs?id=1\u003C\u002Ftd>\u003Ctd>DELETE\u003C\u002Ftd>\u003Ctd>Hapus Product berdasarkan id\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftable>\u003Ch2>Persiapan MySQL\u003C\u002Fh2>\u003Cp>Pastikan kalian sudah memiliki server MySQL di laptop kamu ya. Kalau belum install, coba install dulu.\u003C\u002Fp>\u003Cp>Kalian bisa menginstall XAMPP atau MAMP untuk sekalian menginstall MySQL nya.\u003C\u002Fp>\u003Cp>Untuk yang mau install XAMPP di windows, bisa cek link ini: Cara menginstall XAMPP di windows\u003C\u002Fp>\u003Cp>Jika sudah terinstall MySQL, buat sebuah database dengan nama \u003Ccode>crud\u003C\u002Fcode>.\u003C\u002Fp>\u003Cp>Kalian bisa pakai nama yang lain juga ya. Disesuaikan saja.\u003C\u002Fp>\u003Cpre>\u003Ccode>CREATE DATABASE crud\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Jika sudah, buat sebuah table \u003Ccode>products\u003C\u002Fcode> di dalam database \u003Ccode>crud\u003C\u002Fcode>.\u003C\u002Fp>\u003Cpre>\u003Ccode>CREATE TABLE `products` (\n  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n  `name` varchar(255) DEFAULT NULL,\n  `price` int(11) DEFAULT NULL,\n  PRIMARY KEY (`id`)\n) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Insert juga beberapa dummy data.\u003C\u002Fp>\u003Cpre>\u003Ccode>INSERT INTO `products` (`id`, `name`, `price`)\nVALUES\n\t(1, 'Baju', 100000),\n\t(2, 'Celana', 200000);\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Nah sekarang kita sudah punya database dan tablenya.\u003C\u002Fp>\u003Cp>Saatnya setup untuk nodejs nya.\u003C\u002Fp>\u003Ch2>Buat Webserver Nodejs\u003C\u002Fh2>\u003Cp>Buat sebuah folder dengan nama \u003Ccode>node-crud\u003C\u002Fcode> dan jalankan command \u003Ccode>npm init\u003C\u002Fcode>.\u003C\u002Fp>\u003Cfigure>\u003Cfigcaption>\u003Ci>npm init\u003C\u002Fi>\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>Karena kita akan berurusan dengan MySQL, maka kita perlu install module \u003Ccode>mysql\u003C\u002Fcode>.\u003C\u002Fp>\u003Cpre>\u003Ccode>npm install mysql\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Jika sudah, buat sebuah file dengan nama \u003Ccode>db.js\u003C\u002Fcode> dan \u003Ccode>index.js\u003C\u002Fcode>.\u003C\u002Fp>\u003Col>\u003Cli>\u003Ccode>db.js\u003C\u002Fcode>: akan kita gunakan untuk menyimpan config database.\u003C\u002Fli>\u003Cli>\u003Ccode>index.js\u003C\u002Fcode>: akan menjadi file webserver nodejs kita.\u003C\u002Fli>\u003C\u002Fol>\u003Cp>Tampilan file di folder kita akan menjadi seperti berikut ini:\u003C\u002Fp>\u003Cfigure>\u003Cfigcaption>\u003Ci>strukture file\u003C\u002Fi>\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Ch2>Mempersiapkan db.js\u003C\u002Fh2>\u003Cp>Seperti yang kita bilang diatas, file \u003Ccode>db.js\u003C\u002Fcode> ini akan menampung config MySQL dan akan dipakai di \u003Ccode>index.js\u003C\u002Fcode>.\u003C\u002Fp>\u003Cpre>\u003Ccode>var mysql = require('mysql');\nvar db = mysql.createConnection({\n    host: \"localhost\",\n    user: \"root\", \u002F\u002Fsesuaikan dengan username di laptop km\n    password: \"root\", \u002F\u002Fsesuaikan dengan password di laptop km\n    database: \"crud\" \u002F\u002Fnama database yang kita buat tadi\n});\ndb.connect(function(err) {\n    if (err) throw err;\n    console.log(\"Connected!\");\n});\nmodule.exports = db;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Untuk mengetes apakah kita bisa terkoneksi dengan MySQL servernya, jalankan command:\u003C\u002Fp>\u003Cpre>\u003Ccode>node db.js\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Jika ada tulisan \u003Ccode>Connected!\u003C\u002Fcode> artinya kita sudah berhasil terkoneksi dengan MySQL.\u003C\u002Fp>\u003Ch2>Mempersiapkan index.js\u003C\u002Fh2>\u003Cp>File \u003Ccode>index.js\u003C\u002Fcode> ini akan bertugas untuk menghandle request yang masuk dan mengolah datanya sesuai dengan method yang dikirimkan oleh client.\u003C\u002Fp>\u003Cp>Ada beberapa module nodejs yang akan kita pakai, yaitu:\u003C\u002Fp>\u003Col>\u003Cli>\u003Ccode>http\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>\u003Ccode>url\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>\u003Ccode>querystring\u003C\u002Fcode>\u003C\u002Fli>\u003C\u002Fol>\u003Cp>Module ini sudah kita bahas di tutorial belajar nodejs sebelumnya ya. Jika bisa belum mengerti bisa cek dahulu series \u003Ca href=\"http:\u002F\u002Flocalhost:1313\u002Ftutorial\u002Fnodejs\u002F\">belajar nodejs\u003C\u002Fa> kita.\u003C\u002Fp>\u003Cp>Kita buat kerangka kodingan kita dulu ya guys.\u003C\u002Fp>\u003Cpre>\u003Ccode>var http = require('http');\nvar url = require('url');\nvar qs = require('querystring');\nvar db = require(\".\u002Fdb\");\nvar port = 8080\nhttp.createServer(function (req, res) {\n    var q = url.parse(req.url, true);\n    \n    var id = q.query.id;\n    res.setHeader('Content-Type', 'application\u002Fjson');\n    \n    if(q.pathname == \"\u002Fproducts\" &amp;&amp; req.method === \"GET\"){\n    \t\n    \tif(id !== undefined){\n    \t\t\u002F\u002Flist product\n    \t}else if(id &gt; 0){\n    \t\t\u002F\u002Fget 1 product\n    \t}\n        \n    }\n    else if(q.pathname == \"\u002Fproducts\" &amp;&amp; req.method === \"POST\"){\n    \t\u002F\u002Fsave product\n    \t\n    }\n    else if(q.pathname == \"\u002Fproducts\" &amp;&amp; req.method === \"PUT\"){\n    \t\u002F\u002Fupdate product    \n    \t\n    }\n    else if(q.pathname == \"\u002Fproducts\" &amp;&amp; req.method === \"DELETE\"){\n    \t\u002F\u002Fdelete product    \n    }\n  \n}).listen(port);\nconsole.log('server is running on http:\u002F\u002Flocalhost:'+ port);\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Sedikit penjelasanya:\u003C\u002Fp>\u003Cp>\u003Cstrong>Di line 11\u003C\u002Fstrong>, kita get url yang masuk dan parsing url tersebut dengan module \u003Ccode>url\u003C\u002Fcode>.\u003C\u002Fp>\u003Cp>\u003Cstrong>Di line 13\u003C\u002Fstrong>, kita mau mendapatkan id dari url yang dikirim.\u003C\u002Fp>\u003Cp>\u003Cstrong>Di line 15\u003C\u002Fstrong>, kita memastikan bahwa responsee semuanya dalam format json.\u003C\u002Fp>\u003Cp>\u003Cstrong>Di Line 17\u003C\u002Fstrong> kita akan mengecek, jika methodnya GET maka kita akan punya 2 tugas yaitu:\u003C\u002Fp>\u003Col>\u003Cli>Jika id \u003Ci>undefined\u003C\u002Fi> maka artinya kita akan mengambil semua data produk.\u003C\u002Fli>\u003Cli>Jika id tidak \u003Ci>undefined\u003C\u002Fi> dan lebih besar dari 0, maka artinya kita akan mengambil 1 data produk sesuai dengan id yang dimaksud.\u003C\u002Fli>\u003C\u002Fol>\u003Cp>\u003Cstrong>Di line 30\u003C\u002Fstrong>, untuk handle POST request, yang berarti untuk membuat data produk baru.\u003C\u002Fp>\u003Cp>\u003Cstrong>Di line 35\u003C\u002Fstrong>, untuk handle PUT request, yang berarti untuk mengupdate data produk sesuai id yang diminta.\u003C\u002Fp>\u003Cp>\u003Cstrong>Di line 40\u003C\u002Fstrong>, untuk handle DELETE request, yang berarti untuk menghapus data produk sesuai id yang diminta.\u003C\u002Fp>\u003Cp>Itulah kerangka yang akan kita gunakan. Sesuai dengan rencana url yang kita buat sebelumnya kan?\u003C\u002Fp>\u003Cp>Masih bingung?\u003C\u002Fp>\u003Ch3>1. Get Data Product\u003C\u002Fh3>\u003Cp>Tujuan kita disini adalah meng-hadle url: \u003Ccode>http:\u002F\u002Flocalhost:8080\u002Fproducs\u003C\u002Fcode> dan \u003Ccode>http:\u002F\u002Flocalhost:8080\u002Fproducs?id=1\u003C\u002Fcode> untuk mengembalikan data produk dalam bentuk json.\u003C\u002Fp>\u003Cp>Buka file \u003Ccode>index.js\u003C\u002Fcode> dan tambahkan kode di dalam bagian method GET. \u003Cstrong>Line 17\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cpre>\u003Ccode>...\nif(q.pathname == \"\u002Fproducts\" &amp;&amp; req.method === \"GET\"){\n    if(id === undefined){\n        \u002F\u002Flist product\n        let sql = \"SELECT * FROM products\";\n        db.query(sql,(err, result) =&gt; {\n            if (err) throw err;\n            \n            res.end(JSON.stringify(result));\n            \n        });\n    }else if(id &gt; 0){\n        \u002F\u002Fget one product\n        let sql = \"SELECT * FROM products where id = \"+ id;\n        \n        db.query(sql,(err, result) =&gt; {\n            if (err) throw err;\n            \n            var product = result[0];\n            res.end(JSON.stringify(product));\n            \n        });\n    }\n    \n}\n...\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Cstrong>Maksud kode di atas apa ya?\u003C\u002Fstrong>*\u003C\u002Fp>\u003Cp>Jadi code tersebut akan memanggil query \u003Ccode>SELECT * FROM products\u003C\u002Fcode> dan mengembalikan resultnya dalam bentuk lsit JSON object.\u003C\u002Fp>\u003Cp>Jika url terdapat ID maka query yang dipanggil adalah \u003Ccode>\"SELECT * FROM products where id = \"+ id;\u003C\u002Fcode>.\u003C\u002Fp>\u003Cp>Mari kita coba test koding di atas.\u003C\u002Fp>\u003Cp>Jalakan perintah \u003Ccode>node index.js\u003C\u002Fcode> dan buka \u003Ccode>http:\u002F\u002Flocalhost:8080\u002Fproducts\u003C\u002Fcode> di browser kamu.\u003C\u002Fp>\u003Cp>Jika hasilnya seperti di bawah ini, maka kalian sudah berhasil membuat sebuah server untuk menghandle GET requets dan memanggil data dari database.\u003C\u002Fp>\u003Cfigure>\u003Cfigcaption>\u003Ci>Get Produk JSON\u003C\u002Fi>\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Ch3>2. Create Data Produk\u003C\u002Fh3>\u003Cp>Untuk menyimpan produk, kita akan memakai method POST.\u003C\u002Fp>\u003Cp>Untuk memproses POST data, kita butuh bantuan module \u003Ccode>qs\u003C\u002Fcode>.\u003C\u002Fp>\u003Cp>Silakan tambahkan kode ini dibagian POST.\u003C\u002Fp>\u003Cpre>\u003Ccode>...\nelse if(q.pathname == \"\u002Fproducts\" &amp;&amp; req.method === \"POST\"){\n    \t\u002F\u002Fsave product\n    \t\n    \tvar body = '';\n        req.on('data', function (data) {\n            body += data;\n            \u002F\u002F Too much POST data, kill the connection!\n            \u002F\u002F 1e6 === 1 * Math.pow(10, 6) === 1 * 1000000 ~~~ 1MB\n            if (body.length &gt; 1e6)\n                req.connection.destroy();\n        });\n    \t\n    \treq.on('end', function () {\n            \n            var postData = qs.parse(body);\n            let name = postData.name;\n            let price = postData.price;\n            let sql = `insert into products (name, price) values ( '${name}', '${price}' )`\n\t\t\tdb.query(sql,(err, result) =&gt; {\n\t\t        if (err) throw err;\n\t\t\t    \n\t\t\t    if(result.affectedRows == 1){\n\t\t\t    \tres.end(JSON.stringify({message: 'success'}));\t\n\t\t\t    }else{\n\t\t\t\t\tres.end(JSON.stringify({message: 'gagal'}));\t\n\t\t\t    }\n\t\t\t    \n\t\t    });    \t\n    \t\n    \t});\n    \t\n    \t\n    }\n...\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Cstrong>Penjelasan:\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Jadi kita akan menampung request body dalam 2 variable yaitu \u003Ccode>name\u003C\u002Fcode> dan \u003Ccode>price\u003C\u002Fcode>.\u003C\u002Fp>\u003Cp>Jika sudah, maka kita jalankan query insertnya.\u003C\u002Fp>\u003Cp>Untuk mencoba insert data produk, kita akan menggunakan aplikasi \u003Cstrong>postman\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cp>Kalau belum punya, download dulu terus install.\u003C\u002Fp>\u003Cfigure>\u003Cfigcaption>\u003Ci>Buat produk baru\u003C\u002Fi>\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>Jika kalian mendapatkan result dengan message = success, itu artinya data sudah berhasil tersimpan.\u003C\u002Fp>\u003Cp>Untuk lebih jelasnya, kita coba get lagi list produk yang baru.\u003C\u002Fp>\u003Cfigure>\u003Cfigcaption>\u003Ci>Get List Produk\u003C\u002Fi>\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>Dapat kita lihat, produk Komputer sudah berhasil ter-insert di database.\u003C\u002Fp>\u003Cp>Mantap guys. Kita sudah sukses menambah produk baru ke dalam database.\u003C\u002Fp>\u003Ch3>3. Update Produk\u003C\u002Fh3>\u003Cp>Untuk mengupdate produk, maka method yang kita gunakan adalah method PUT.\u003C\u002Fp>\u003Cp>Proses ini hampir sama saat proses create produk. Tapi selain butuh data \u003Ccode>name\u003C\u002Fcode> &amp; \u003Ccode>price\u003C\u002Fcode>, kita butuh ID produk yang ingin di update..\u003C\u002Fp>\u003Cp>Edit lagi file \u003Ccode>index.js\u003C\u002Fcode> dibagian method PUT.\u003C\u002Fp>\u003Cpre>\u003Ccode>...\nelse if(q.pathname == \"\u002Fproducts\" &amp;&amp; req.method === \"PUT\"){\n    \t\u002F\u002Fupdate product  \n    \tvar body = '';\n        req.on('data', function (data) {\n            body += data;\n            \u002F\u002F Too much POST data, kill the connection!\n            \u002F\u002F 1e6 === 1 * Math.pow(10, 6) === 1 * 1000000 ~~~ 1MB\n            if (body.length &gt; 1e6)\n                req.connection.destroy();\n        });\n    \t\n    \treq.on('end', function () {\n            \n            var postData = qs.parse(body);\n            let name = postData.name;\n            let price = postData.price;\n            let sql = `UPDATE  products set name = '${name}', price = '${price}' where id = ${id}`\n\t\t\tdb.query(sql,(err, result) =&gt; {\n\t\t        if (err) throw err;\n\t\t\t    \n\t\t\t    if(result.affectedRows == 1){\n\t\t\t    \tres.end(JSON.stringify({message: 'success'}));\t\n\t\t\t    }else{\n\t\t\t\t\tres.end(JSON.stringify({message: 'gagal'}));\t\n\t\t\t    }\n\t\t\t    \n\t\t    });    \t\n    \t\n    \t});  \n    \t\n    }\n...\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Sedikit penjelasan…\u003C\u002Fp>\u003Cp>Jadi kita akan pakai query update disini.\u003C\u002Fp>\u003Cp>Data \u003Ccode>name\u003C\u002Fcode> dan \u003Ccode>price\u003C\u002Fcode> akan kita ambil dari request body. Data ID produknya, kita ambil dari url params-nya.\u003C\u002Fp>\u003Cp>Jika sudah, kita testing lagi di postman.\u003C\u002Fp>\u003Cp>Kita akan coba edit Produk komputer tadi dengan ID 3 seperti gambar di bawah ini.\u003C\u002Fp>\u003Cfigure>\u003Cfigcaption>\u003Ci>Update produk id 3\u003C\u002Fi>\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>Jika message = success, artinya kamu berhasil update produknya.\u003C\u002Fp>\u003Cp>Kita buktikan dengan memanggil get list produk lagi.\u003C\u002Fp>\u003Cfigure>\u003Cfigcaption>\u003Ci>Get List Produk setelah update\u003C\u002Fi>\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>Kita sudah berhasil meng-update produk dengan nodejs + MySQL.\u003C\u002Fp>\u003Ch3>4. Delete Produk\u003C\u002Fh3>\u003Cp>Untuk menghapus produk, kita akan memakai method DELETE dan kita butuh ID dari produk yang ingin di delete.\u003C\u002Fp>\u003Cp>Edit lagi file \u003Ccode>index.js\u003C\u002Fcode>.\u003C\u002Fp>\u003Cp>Tambahakn baris kode dibagian method DELETE.\u003C\u002Fp>\u003Cpre>\u003Ccode>else if(q.pathname == \"\u002Fproducts\" &amp;&amp; req.method === \"DELETE\"){\n    \t\u002F\u002Fdelete product    \n  \t\t\n    \tlet sql = `DELETE FROM products where id = ${id}`\n\t\tdb.query(sql,(err, result) =&gt; {\n\t        if (err) throw err;\n\t\t    \n\t\t    if(result.affectedRows == 1){\n\t\t    \tres.end(JSON.stringify({message: 'success'}));\t\n\t\t    }else{\n\t\t\t\tres.end(JSON.stringify({message: 'gagal'}));\t\n\t\t    }\n\t\t    \n\t    });    \t\n    }else{\n    \tres.end();\t\n    }\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Jadi kita panggil query \u003Ccode>DELETE FROM products where id = ${id}\u003C\u002Fcode> untuk menghapus produk berdasarkan ID nya.\u003C\u002Fp>\u003Cp>Kita akan memberikan response \u003Cstrong>success\u003C\u002Fstrong> jika berhasil, dan \u003Cstrong>gagal\u003C\u002Fstrong> jika tidak berhasil.\u003C\u002Fp>\u003Cfigure>\u003Cfigcaption>\u003Ci>Hapus Produk\u003C\u002Fi>\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>Itulah cara untuk menghapus produk dengan nodejs MySQL.\u003C\u002Fp>\u003Cp>Inilah file \u003Ccode>index.js\u003C\u002Fcode> setelah kita gabung semua kode di atas.\u003C\u002Fp>\u003Cpre>\u003Ccode>var http = require('http');\nvar url = require('url');\nvar qs = require('querystring');\nvar db = require(\".\u002Fdb\");\nvar port = 8080\nhttp.createServer(function (req, res) {\n    var q = url.parse(req.url, true);\n    \n    var id = q.query.id;\n    res.setHeader('Content-Type', 'application\u002Fjson');\n    if(q.pathname == \"\u002Fproducts\" &amp;&amp; req.method === \"GET\"){\n    \t\n    \tconsole.log(id)\n    \tif(id === undefined){\n    \t\t\u002F\u002Flist product\n    \t\tlet sql = \"SELECT * FROM products\";\n\t\t    db.query(sql,(err, result) =&gt; {\n\t\t        if (err) throw err;\n\t\t\t    \n\t\t\t    res.end(JSON.stringify(result));\n\t\t        \n\t\t    });\n    \t}else if(id &gt; 0){\n    \t\t\u002F\u002Fget one product\n    \t\tlet sql = \"SELECT * FROM products where id = \"+ id;\n    \t\t\n\t\t    db.query(sql,(err, result) =&gt; {\n\t\t        if (err) throw err;\n\t\t\t    \n\t\t\t    var product = result[0];\n\t\t\t    res.end(JSON.stringify(product));\n\t\t        \n\t\t    });\n    \t}\n        \n    }\n    else if(q.pathname == \"\u002Fproducts\" &amp;&amp; req.method === \"POST\"){\n    \t\u002F\u002Fsave product\n    \t\n    \tvar body = '';\n        req.on('data', function (data) {\n            body += data;\n            \u002F\u002F Too much POST data, kill the connection!\n            \u002F\u002F 1e6 === 1 * Math.pow(10, 6) === 1 * 1000000 ~~~ 1MB\n            if (body.length &gt; 1e6)\n                req.connection.destroy();\n        });\n    \t\n    \treq.on('end', function () {\n            \n            var postData = qs.parse(body);\n            let name = postData.name;\n            let price = postData.price;\n            let sql = `insert into products (name, price) values ( '${name}', '${price}' )`\n\t\t\tdb.query(sql,(err, result) =&gt; {\n\t\t        if (err) throw err;\n\t\t\t    \n\t\t\t    if(result.affectedRows == 1){\n\t\t\t    \tres.end(JSON.stringify({message: 'success'}));\t\n\t\t\t    }else{\n\t\t\t\t\tres.end(JSON.stringify({message: 'gagal'}));\t\n\t\t\t    }\n\t\t\t    \n\t\t    });    \t\n    \t\n    \t});\n    \t\n    \t\n    }\n    else if(q.pathname == \"\u002Fproducts\" &amp;&amp; req.method === \"PUT\"){\n    \t\u002F\u002Fupdate product  \n    \tvar body = '';\n        req.on('data', function (data) {\n            body += data;\n            \u002F\u002F Too much POST data, kill the connection!\n            \u002F\u002F 1e6 === 1 * Math.pow(10, 6) === 1 * 1000000 ~~~ 1MB\n            if (body.length &gt; 1e6)\n                req.connection.destroy();\n        });\n    \t\n    \treq.on('end', function () {\n            \n            var postData = qs.parse(body);\n            let name = postData.name;\n            let price = postData.price;\n            let sql = `UPDATE  products set name = '${name}', price = '${price}' where id = ${id}`\n\t\t\tdb.query(sql,(err, result) =&gt; {\n\t\t        if (err) throw err;\n\t\t\t    \n\t\t\t    if(result.affectedRows == 1){\n\t\t\t    \tres.end(JSON.stringify({message: 'success'}));\t\n\t\t\t    }else{\n\t\t\t\t\tres.end(JSON.stringify({message: 'gagal'}));\t\n\t\t\t    }\n\t\t\t    \n\t\t    });    \t\n    \t\n    \t});  \n    \t\n    }\n    else if(q.pathname == \"\u002Fproducts\" &amp;&amp; req.method === \"DELETE\"){\n    \t\u002F\u002Fdelete product    \n  \t\t\n    \tlet sql = `DELETE FROM products where id = ${id}`\n\t\tdb.query(sql,(err, result) =&gt; {\n\t        if (err) throw err;\n\t\t    \n\t\t    if(result.affectedRows == 1){\n\t\t    \tres.end(JSON.stringify({message: 'success'}));\t\n\t\t    }else{\n\t\t\t\tres.end(JSON.stringify({message: 'gagal'}));\t\n\t\t    }\n\t\t    \n\t    });    \t\n    }else{\n    \tres.end();\t\n    }\n     \n  \n}).listen(port);\nconsole.log('server is running on http:\u002F\u002Flocalhost:'+ port);\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>Nah itulah tutorial crud dengan nodejs dan MySQL. Cukup mudah dimengerti bukan?\u003C\u002Fp>\u003Cp>Jika kalian membutuhkan full source codenya, bisa di cek di github repo ini ya: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyusidabcs\u002Fnodejs-crud-mysql\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyusidabcs\u002Fnodejs-crud-mysql\">https:\u002F\u002Fgithub.com\u002Fyusidabcs\u002Fnodejs-crud-mysql\u003C\u002Fa>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>Jika ada pertanyaan dan masukan, silakan taruh di kolom komentar ya.\u003C\u002Fp>\u003Cp>Tunggu tutorial kita yang lainnya.\u003C\u002Fp>\u003Cp>\u003Cb>Series Belajar NodeJS Sebelumnya:\u003C\u002Fb>\u003C\u002Fp>\u003Col>\u003Cli>Belajar NodeJs - Dasar dan Persiapan Belajar NodeJs\u003C\u002Fli>\u003Cli>Belajar NodeJs - Mengenal Package Management NPM\u003C\u002Fli>\u003Cli>Belajar NodeJs - Membuat Website Sederhana Dengan Nodejs\u003C\u002Fli>\u003Cli>Belajar NodeJs - Cara Handle Form Input di Nodejs\u003C\u002Fli>\u003C\u002Fol>","Pada tutorial ini kita akan belajar nodejs yaitu bagaimana cara membuat CRUD (Create Update Delete) dengan Nodejs dan MySQL. CRUD adalah sebuah fungsi dasar yan",[],[],0]