SQL Server Bersama Node & Express JS Bag.1

SQL Server Bersama Node & Express JS Bag.1

Sebagai post pertamax (BBM yang baru naik harga…hiks) awak kira kalau masih kurang-kurang paten, mohon dimaklumi sajalah wak!
Lagi pulak ini Blog tujuan awalnya mengganti catatan pribadi. Kalau orang lain tak faham, ya… nggak usah baca! hehe.

Awalnya mau membikin proyek nya awak untuk tempat kerja, tapi rupanya macam kata uwak Kiddy yang tulisannya ini awak jadikan juga panduan awal untuk bikin proyek NodeJS-ExpressJS buat jadi RESTApi, bahwa kebanyakan panduan NodeJS untuk nubitol alias nubi tolol macam awak ini menggunakan DB Mongo. Awak sih setuju Mongo memang kencang wak, tapi taulah kalau di tempat kerja pakai SQL Server punya wak Bill Gates. Jadi capeklah mencari kesana kemari akhirnya awak otodidaklah nyoba-nyoba koding pakai package Tedious yang untuk SQL Server itu.

Berbekal tekad siap setress kalau nggak jalan kodenya, awak cobaklah memulai. Kalok anda nanti pusing, saya pun sudah mengalaminya. hehehe.
Kalok begitu langsung sajalah kita mainkan!

Pertama tentunya anda harus sudah memasang NodeJS di komputer, kalok belum pasang, ya carilah tutorialnya di Google, banyak kali pun.

Nah kalok sudah yakin jalan NodeJS nya, bisalah kita mulai memainkan

Awalnya tentu pakai perintah

npm init ↩

kemudian isi dengan data sewajarnya.
Setelah selesai, kita jalankan perintah

npm install --save express bluebird tedious body-parser nodemon ↩

Langkah selanjutnya adalah ngopi poll. Ini dikhususkan bagi mereka yang koneksinya diujung kampung nun jauh mata memandang. Kalau sudah pakai koneksi FO 10mbps sepertinya cuma seteguk air sudah cukup. (paragraf ini sepertinya tidak perlu, tapi biarlah).
Awak jelaskan dikit ya mengenai bluebird tedious dan body-parser. Ini khusus bagi nubitol juga macam awak nih.
1. Bluebird
Ini adalah package NodeJS yang mengurusin masalah Promise dan Await.
Kamu mesti banget tahu (macam iklan Ojol) bahwa Javascript itu bekerja dengan cara Asyncronous tetiba dia mau mengerjakan banyak hal seolah secara terpisah. Dia nggak pakai nunggu 1 proses selesai dulu baru mengerjakan hal lain, tapi dia mengerjakan hal lain yang tidak membutuhkan hasil proses sebelumnya, sambil menunggu proses tersebut itu selesai.

Masalah klasiknya Javascript dengan Async adalah Callback Hell. Untuk tahu lebih, silahkan ke halaman wak Kiddy saja. Di sini ada penjelasannya mengenai Callback Hell.

2. Tedious

Adalah implementasi Javascript murni dari protokol TDS (Tabular Data Stream), yang digunakan untuk berinteraksi dengan instance Microsoft SQL Server. Ini dimaksudkan untuk menjadi implementasi protokol yang cukup ramping, dengan tidak terlalu banyak fungsi tambahan.

3. Body-parser

Adalah package yang dipasang buat middleware yang menangani Request Body setiap permintaan yang masuk lewat protokol http ke dalam ExpressJS kita.

4. Nodemon
adalah package yang membuat kita tidak cape mengetik ulang perintah npm start. Nodemon akan memantau perubahan script dan langsung meload ulang npm run. Intinya ini hotreload.

Lanjut…

Sejak awal belajar pemrograman, Atok awak selalu bilang :”Cucu! biasakanlah koding yang rapih jali macam rambut nenekmu diwaktu gadisnya.” Awak tak ngerti apa hubungannya sampai suatu ketika…
Nah tidak perlu didramatisir.
Biasanya awak kalok bikin aplikasi memisahkan masing-masing fungsi dalam direktori berbeda.
Misalnya controller di dalam direktori controllers, helper di dalam helpers begitu seterusnya.
Jadi kalau awak bikeun struktur tree direktorinya macam gini:

Jadi nampak rapi sikit.

Oke kita buat dulu Databasenya, berikut tabel users yang kita pakai untuk contoh.

Berikutnya kita akan buat file server.js yang isinya:


Ini adalah file induk yang kita panggil saat mulai menjalankan aplikasi.

Oke lanjut, nanti tiap bagian akan kita buat dulu direkrori dbhelpers

mkdir dbhelpers ↩
cd dbhelpers ↩

Kemudian membuat file baru msSqlConnector.js

File ini aslinya dapat dari MSDN Microsoft untuk mempermudah kita menjalankan query SQL dan sudah mendukung Promise. Di sinilah dibutuhkan bluebird tadi.

Kodenya lumayan panjang,

Masih di direktori dbhelpers kita buat file baru bernama res.js yang isinya :


Kode ini bertujuan untuk menstandarisasi nilai kembalian dari DB. Intinya ini JSON formatter.
Lihat bahwa disini kita pakai res.json(data). Data akan diperoleh dari DB dan si res.js akan mengubah data menjadi JSON. Tugas selanjutnya kita serahkan ke FrontEnd Dev untuk menampilkan JSON sesuai selera. res.end() adalah fungsi yang dipake untuk menutup koneksi ke database setelah data selesai diubah ke JSON.

Berikutnya kita buat direktori controllers

mkdir controllers ↩
cd controllers ↩

Lalu buat file baru bernama controller.js, isinya :

Lanjut kita bikeun direktori routes

mkdir routes ↩
cd routes ↩

Kemudian buat file route.js di dalam direktori routes
Isinya :

Langkah terakhir adalah menguji
Oh, sebelumnya kita modifikasi sedikit file package.json

Intinya pada baris ke-7, disana kita sisipkan perintah nodemon lalu nama file server.js
Lanjut kita ujicoba.

npm run start ↩

Cobalah akses aplikasi di http://localhost:3000/ kemudian http://localhost:3000/users/
Port 3000 ditentukan pada file server.js baris ke-3

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *