Kedua, setelah install tulis di command prompt lu “npm -v” untuk cek versinya.
Ketiga, masuk kedalam folder tempat dimana kalian membuat project. Buat terlebih dahulu foldernya lalu masuk ke foldernya di CMD dan ketik “npm init”
Tujuannya adalah dia akan generate file package.json.
Diatas adalah hasil dari package.json yang akan dimasukkan, kalian bisa ganti versi, nama, deskripsi, file utama yang dijalankan, script test, author, bahkan licensenya.
sekarang install package yang diperlukan :
- express package
- mysql package
- body-parser package
Package body-parser ini digunakan untuk memparsing setiap request yang masuk melalui HTTP, baik itu dengan x-www-form-urlencoded, raw json, dan form data. Package ini membuat kita mudah untuk memakai method parsing dari apa saja yang disubmit melalui rest api.
cara install
npm install --save express mysql body-parser
Setelah selesai mendownload,
Buat tablea yang akan kita pakai, tablenya seperti ini saja.
CREATE TABLE IF NOT EXISTS `person` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(50) NOT NULL DEFAULT '0',
`last_name` varchar(50) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
Lalu, Buat file server.js, ini adalah file utama mirip seperti index.php.
var express = require('express'),
app = express(),
port = process.env.PORT || 3000,
bodyParser = require('body-parser'),
controller = require('./controller');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var routes = require('./routes');
routes(app);
app.listen(port);
console.log('Learn Node JS With Kiddy, RESTful API server started on: ' + port);
Kita tidak akan masukkan routes, controller, serta response value langsung kedalam server.js
Setelah server.js dijalankan,kita akan membuat file koneksi antara database dan aplikasi kita.
Buat sebuah file dan beri nama conn.js sebagai tempat mengkoneksikan aplikasi ke database ketika kita butuh koneksi ke database.
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "namadatabase"
});
con.connect(function (err){
if(err) throw err;
});
module.exports = con;
Sekarang membuat file controller. Buat file controller.js dan copy code dibawah~
'use strict';
var response = require('./res');
var connection = require('./conn');
exports.users = function(req, res) {
connection.query('SELECT * FROM person', function (error, rows, fields){
if(error){
console.log(error)
} else{
response.ok(rows, res)
}
});
};
exports.index = function(req, res) {
response.ok("Hello from the Node JS RESTful side!", res)
};
Jika sudah sekarang langsung buat res.js
Contohnya Seperti ini.
Standarisasi respon ini dibutuhkan, buat frontend developer. Fungsinya agar mengetahui parameter apa yang dikembalikan dan valuenya seperti apa saja.
Oke selanjutnya buat file res.js dan copy paste kode dibawah.
'use strict';
exports.ok = function(values, res) {
var data = {
'status': 200,
'values': values
};
res.json(data);
res.end();
};
Disini tertulis res.json(data) data ini yang akan dikembalikan menjadi json dan fungsi res.end() adalah fungsi yang dipakai untuk menutup koneksi ke database setelah data ditampilkan ke json.
Sekarang membuat file routes.js
File ini dipakai untuk menulis routes atau endpoint apa saja yang ada di rest api kita.
'use strict';
module.exports = function(app) {
var todoList = require('./controller');
app.route('/')
.get(todoList.index);
app.route('/users')
.get(todoList.users);
};
Sekarang saatnya mencoba! kita akan menjalankan dengan menulis di CMD kita npm start jika terjadi error tulis node server.js di command prompt.
node server.js
Akses ke localhost:3000 dan lihat hasilnya.
Lalu akses ke localhost:3000/users
-----------------------------------------------------------------------------------------------------------------
REST API
Secara singkat REST adalah metode komunikasi antar dua sistem yang memalui HTTP. Sebelum melanjutkan koding kita memerlukan package baru yaitu body-parses, package ini berfungsi untuk melakukan parsing request agar mendapatkan body dari request tersebut. Cara memasang package ini adalah:
npm i body-parser
Pada app.js silahkan tulis kode di bahawah ini:
| // merujuk express, body-parser |
| const express = require('express'); |
| const bodyParser = require('body-parser'); |
|
|
| // instansiasi obejct express dan di simpan pada konstanta app |
| const app = express(); |
|
|
| // gunakan body parser sebgai middleware |
| app.use(bodyParser.json()); |
|
|
| // untuk sementara kita anggap variable db ini sebagai sumber data kita |
| // contoh data yang kita gunakan adalah job pada karakter game |
| let db = [ |
| { |
| id: 1, |
| name: 'Warior', |
| attack: 100, |
| defence: 50, |
| agility: 30, |
| magic: 0, |
| }, |
| { |
| id: 2, |
| name: 'Mage', |
| attack: 10, |
| defence: 20, |
| agility: 50, |
| magic: 100, |
| }, |
| ]; |
|
|
| // contoh routing pada express |
| app.get('/', (request, response) => response.send('Hello World')); |
|
|
| // memberikan List job |
| app.get('/jobs', (request, response) => { |
| return response.json(db); |
| }); |
|
|
| // memberikan job spesifik sesuai dengan nama yang ada pada url |
| app.get('/jobs/:name', (request, response) => { |
| const result = db.filter(val => { |
| return val.name.toLocaleLowerCase() === request.params.name.toLocaleLowerCase(); |
| }); |
| return response.json(result); |
| }); |
|
|
| // memasukan job baru |
| app.post('/jobs', (request, response) => { |
| const newJob = { |
| id: db.length + 1, |
| name: request.body.name, |
| attack: request.body.attack, |
| defence: request.body.defence, |
| agility: request.body.agility, |
| magic: request.body.magic, |
| }; |
|
|
| db.push(newJob); |
| |
| return response.json(newJob); |
| }); |
|
|
| // mengubah job yang ada |
| app.put('/jobs/:name', (request, response) => { |
| const theJob = db.filter(val => { |
| return val.name.toLocaleLowerCase() === request.params.name.toLocaleLowerCase(); |
| }); |
|
|
| if (theJob === null) { |
| return response.json('Not Found'); |
| } |
|
|
| const newJob = { |
| id: theJob[0].id, |
| name: request.body.name || theJob[0].name, |
| attack: request.body.attack || theJob[0].attack, |
| defence: request.body.defence || theJob[0].defence, |
| agility: request.body.agility || theJob[0].agility, |
| magic: request.body.magic || theJob[0].magic, |
| }; |
|
|
| db.push(newJob); |
| |
| return response.json(newJob); |
| }); |
|
|
| // menghapus job yang ada |
| app.delete('/jobs/:name', (request, response) => { |
| db = db.filter(val => { |
| return val.name.toLocaleLowerCase() !== request.params.name.toLocaleLowerCase(); |
| }); |
|
|
| return response.json(db); |
| }); |
|
|
| // mendengarkan event yang terjadi pada localhost dengan port 3000 |
| app.listen(3000, () => console.log('listenig on localhos:3000')); |
Pada kode diatas sudah mengimplmentasi REST API, kita sudah membuat empat endpoint yaitu:
GET: /jobs endpoint ini bertugas untuk memberikan list data jobs.
GET: /jobs/:name endpoint ini bertugas memberikan data jobs sesuai dengan permintaan client :name pada url adalah data dynamis. Jadi bisa digunakan dengan cara /jobs/warior atau /jobs/mage.
POST: /jobs endpoint ini bertugas untuk membuat record baru.
PUT: /jobs/:name endpoint ini bertugas untuk melakukan edit pada data yang dipilih memlalaui parameter :name
DELETE: /jobs/:name endpoint ini bertugas untuk menghapus data dengan parameter :name .
Untuk detil penjelasan kodenya sudah saya tuliskan di komen kodenya.
Sekareng kita akan mencoba untuk test app kita. Pertama matikan server sebelumnya dgn ctrl+c dan jalankan lagi app tersebut dengan cara:
node app.js
Buka postman dan kita coba endpoint diatas satu persatu.
GET: /jobs
GET: /jobs/:name
POST: /jobs
PUT: /jobs/:name
DELETE: /jobs/:name
Contoh diatas merupakan contoh sederhana dari REST API.
-----------------------------------------------------------------------------------------------------------------
Rest API Node.JS
Membuat Folder Project :
Gunakan perintah di bawah ini untuk membuat folder project express Anda dengan
folder (nama_project)
Setelah berhasil membuat folder express-api di sistem Anda.
Selanjutnya ikuti perintah di bawah ini untuk install NPM:
Selanjutnya install framework express js dan driver MySQL
dengan NPM. masuk ke terminal dan gunakan perintah di bawah ini:
npm install express --save
npm install body-parser --save
Buatlah table dan database :
--
-- Table structure for table `users`
--
CREATE TABLE `users` (
`id` int(11) NOT NULL,
`user` varchar(10) NOT NULL,
`name` varchar(200) NOT NULL,
`email` varchar(200) NOT NULL,
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Insert data kedalam database :
--
-- Dumping data for table `users`
--
INSERT INTO `users` (`id`, `user`, `name`, `email`, `created_at`) VALUES
(19, 'rudisk8', 'Rudi H.W', 'admin@cakrudi.com', '2019-10-22 16:54:44'),
(20, 'ayojago', 'Mahfud', 'mahfud@gmail.com', '2019-10-29 14:26:15');
Membuat server.js : Step selanjutnya adalah membuat
server.js di dalam project folder express-api, maka silakan tambahkan file
connection.server.js sebagai entry point.
Sumber Refrensi: