Manajemen Routing Mudah di Express.js
Homenode jsWeb Server

Manajemen Routing Mudah di Express.js

  Photo by  Javier Allegue Barros  on  Unsplash Permasalahan Routing di Express.js sangatlah mudah, namun adakalanya routing menjadi pelik d...

yuk cari tau, Cara Memasang atau Embed Dokumen Google Docs di Web
Berkenalan dengan Socket.io
Cara Membuat Server Radio Online (gratiss) dengan listen2myradio

 

Photo by Javier Allegue Barros on Unsplash

Permasalahan

Routing di Express.js sangatlah mudah, namun adakalanya routing menjadi pelik dan sangat merepotkan ketika endpoint API semakin banyak sehingga deklarasi routing menjadi sangat banyak dalam 1 file. Belum lagi repotnya melakukan prefix version secara manual pada setiap routing.

Sebagai contoh permasalahan seperti dibawah ini :

  1. Mendeklarasikan route dari semua controller di satu file routing
src
├── app.js
├── controllers
│ ├── resource1.js
│ └── resource2.js
└── routes
└── index.js
// index.js
const express = require('express');
const router = express.Router();
// Import controller
const resourceOneController = require('/controllers/resource1');
const resourceTwoController = require('/controllers/resource2');


// Resource 1
router.get('/resource-1/', resourceOneController.get);
router.get('/resource-1/:id', resourceOneController.getOne);
router.post('/resource-1/:id', resourceOneController.post);
router.put('/resource-1/:id', resourceOneController.put);
router.delete('/resource-1/:id', resourceOneController.delete);
// Resource 2
router.get('/resource-2/', resourceTwoController.get);
router.get('/resource-2/:id', resourceTwoController.getOne);
router.post('/resource-2/', resourceTwoController.post);
router.put('/resource-2/:id', resourceTwoController.put);
router.delete('/resource-2/:id', resourceTwoController.delete);
// Resource 3 .. 50module.exports = router;

Lalu kita menggunakannya di file utama aplikasi, pada contoh kali ini app.js

// app.js
const express = require('express');
// Import file route
const routes require('./routes');
const app = express();// Load routes disini
app.use(routes);
...

Dengan cara ini kita bisa me-load route di app.js hanya satu kali, namun letak permasalahannya di file routing, yaitu untuk setiap resource dari controller harus dideklarasikan semuanya di satu file. Sehingga apabila perkembangan aplikasi semakin besar, file routing semakin susah untuk di atur.

2. Memisahkan routing untuk setiap resource dan me-load satu per satu di app.js

src
├── app.js
├── controllers
│ ├── resource1.js
│ └── resource2.js
└── routes
├── resource1.js
└── resource2.js
// app.js
const express = require('express');
// Import file route
const resource1 require('./resource1');
const resource2 require('./resource2');
const app = express();// Load routes disini
app.use('resource-1', resource1);
app.use('resource-1', resource2);
...

Untuk file routing dipisah menjadi 1 file per resource / flow

// resource1.js
const express = require('express');
const router = express.Router();
// Import controller
const resourceOneController = require('/controllers/resource1');

router.get('/', resourceOneController.get);
router.get('/:id', resourceOneController.getOne);
router.post('/', resourceOneController.post);
router.put('/:id', resourceOneController.put);
router.delete('/:id', resourceOneController.delete);
module.exports = router;

Dengan cara ini file routing lebih teroganisir dan lebih mudah untuk diatur ketika aplikasi semakin berkembang. Namun disini memiliki permasalahan jika file route semakin banyak maka kode load routes semakin banyak dan file app.js semakin tidak rapi. Bayangkan jika ada 10 lebih routes dan di-load di file app.js, tentu bukan hal yang menyenangkan untuk dilihat.

Terus bagaimana solusinya bos?

Solusinya kita akan menggunakan kelebihan dari kedua cara diatas, yaitu dengan hanya memanggil 1 file di app.js dan melakukan pemisahan file per resource / flow.

src
├── app.js
├── controllers
│ ├── resource1.js
│ └── resource2.js
└── routes
├── resource1.js
├── resource2.js
└── index.js

Disini file route dari resource akan di-load di file routes/index.js, file inilah yang akan dipanggil sekali di file app.js. Untuk contoh kodenya dapat dilihat dari contoh dibawah.

// app.js
const express = require(‘express’);
// Import file route
const routes require('./routes');
const app = express();// Load routes disini
app.use(routes);
module.exports = app;

Lalu file index.js di folder routes yang berfungsi sebagai penghubung utama dengan file app.js.

// routes/index.js
const express = require(‘express’);
// Import routes
const resource1 = require('resource1');
const resource2 = require('resource2');
const router = express.Router();router.use('/resource-1', resource1);
router.use('/resource-2', resource2);
module.exports = router;

Dan berikut file route dari resource/flow

// resource1.js
const express = require('express');
const router = express.Router();
// Import controller
const resourceOneController = require('/controllers/resource1');

router.get('/', resourceOneController.get);
router.get('/:id', resourceOneController.getOne);
router.post('/', resourceOneController.post);
router.put('/:id', resourceOneController.put);
router.delete('/:id', resourceOneController.delete);
module.exports = router;

Dengan cara ini routing lebih rapi dan mudah untuk diatur dan membuat file app.js tidak berantakan. Selain itu dengan cara ini lebih mudah untuk melakukan prefix version url pada routing, sehingga aplikasi lebih teratur.

Selesai

Sekian pembahan tentang routing di Express.js ini. Mungkin pembahasan ini sudah basi, namun tidak ada salahnya untuk dibahas. Semoga tulisan ini bermanfaat untuk yang membutuhkan. Kritik dan saran bisa di kolom komentar atau email ke syahdanfilsafan58@gmail.com

Terimakasih banyak.

Designed by Sneeit.Com
Nama

2fa,2,adsense,3,ai,32,Alat,1,Algorithms,3,Android,29,anti virus,1,Apache,4,api,4,apipedia,2,Aplikasi Android,10,apps,2,AppSheet,40,arang,1,Array,3,array formula,3,Artikel,8,bca,1,Belajar,1,Bengkak,1,Berita,1,Berita terkini,13,Biografi,1,Bisnis,139,Bitcoin,1,Blog,7,Blogger,34,Blogger Template,1,Blogging,2,Bootable,1,bot,1,build with ai,3,build with syahdandev,14,bun.js,1,catlang,1,chat gpt,1,Cheat,1,Chrome,2,cloudflare,1,Code,14,coding,11,collaboration tools,1,Competitive Coding,7,copilot,1,CPU,1,Crud,1,CSS3,2,cybersecurity,2,Data Structures,18,Database,1,decode,1,Deep Learning,3,Desain Blogger,47,Design,3,developer,5,Development,8,Domain Hosting,2,Download,4,dunia kerja,2,Elon Musk,4,enak,1,encode,1,excel,2,express,1,Facebook,2,fact or hoax,1,fastify,1,free,1,Free Course,13,Game,5,Gamers,2,gemini,1,generate with AI,2,generator,1,github,2,google,12,Google AdSense,20,Google Apps Script,25,google calendar,1,google docs,2,google drive,2,google forms,1,google mail,1,google maps,1,Google Script,3,google sheets,14,Google Webmaster Tools,1,Hardware,1,Home,1,hosting,4,Hostinger,1,HP,2,HTML,6,HTML5,2,HyperOs,1,ice cream,1,ide kreatif,2,image creator,2,Indonesia,1,Instagram,2,instant vdeo generator,1,integrator,1,Internet,8,iOS,1,IOT,2,iphone,1,IT,6,JavaScript,7,js,4,Kenali,1,Keren,1,Kesehatan,14,laragon,1,laravel,1,Leet Code,7,library,1,Linked List,4,Linux,8,Machine Learning,4,malware,1,map,1,Mark Zuck,1,Marketing Tools,1,marketplace,1,Mata,1,Math,8,mbti,2,McDonald's,1,meme,1,meta,1,mfa,1,Microsoft Word,1,Minimalis,1,miscellaneous questions,1,mixue,1,Mobile Legends,4,Motherboard,1,motivasi,1,murah,1,mysql,5,Neovim,1,Networking,1,next js,1,ngingx,1,NIK,1,NLP,1,no code,5,node js,11,nodejs,1,NPWP,1,obfuscated,1,Office,1,open ai,3,Oppo,1,Parallel Space,1,pc,2,PDF Print,1,pgsql,2,Phoenix OS,1,PHP,16,phpmyadmin,2,portofolio,1,postman,3,Power Point,1,Presentation,1,price list,1,Program Aplikasi,6,programmer,3,programming,1,psikolog,4,python,5,query,1,Quesions or Answers (Quora),2,Questions or Answers (Quora),1,RAR,2,Recursion,3,regex,2,Regulasi,1,Review,147,Rufus,1,Rumus,55,Sakit,1,Samsung,1,Security,1,SEO,21,SHAREit,1,shop,1,simple apps,2,Smart City,1,smartfren,1,Smartphone,1,sms,1,Social Media,1,socket.io,2,Software,2,spesifikasi,1,SQL,1,SQL Server,1,Steemit,7,string,3,team IT,1,Tebak Gambar,2,Technology,4,Teknologi,8,Teknologi Informasi,3,Telegram,3,Template Blog SEO,10,Template Blogger,1,Templates,1,terminal,1,tiktok,1,Tips,22,Tips & Trik,20,Tips Blogging,36,Tips SEO,23,toolkit,1,Tree,8,Trick,27,trik,3,Tulisan Lepas,1,tutorial,6,Tutorial CSS,3,Tutorial HTML,56,Tutorial JavaScript,3,Twitter,2,Ubuntu,5,udemy,7,UX,8,VirtualBox,1,VLC Media Player,1,VSCode,2,waconsole,24,wallpaper engine,1,web dev,2,Web Server,5,WhatsApp,14,WhatsApp Gateway,8,Widget,2,Windows,25,wordpress,4,XAMPP,7,Xiaomi,5,Yii2,1,YouTube,3,
ltr
item
Syahdan Dev Blog: Manajemen Routing Mudah di Express.js
Manajemen Routing Mudah di Express.js
https://miro.medium.com/max/875/0*JpHud2BCfoD5bSFD
Syahdan Dev Blog
https://syahdandev.blogspot.com/2022/08/manajemen-routing-mudah-di-expressjs.html
https://syahdandev.blogspot.com/
https://syahdandev.blogspot.com/
https://syahdandev.blogspot.com/2022/08/manajemen-routing-mudah-di-expressjs.html
true
6341435550051226882
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago 1 minutes ago 1 hour ago 1 hours ago Yesterday 1 days ago 1 weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content