Javascript
Sebelum berkenalan dengan Express, kita berkenalan dulu dengan JavaScript dan Node. JavaScript yang awalnya hanya untuk digunakan pada sisi klien dan sudah menjadi bahasa umum di sisi klien, sekarang juga digunakan di sisi server berkat dari Node.js.
Hal yang menjanjikan pada teknologi JavaScript sangat jelas, tidak memerlukan context switching. Programmer tidak perlu mengubah pola JavaScript ke bahasa apapun yang digunakan oleh sisi server. Selain itu programmer frontend juga bisa melakukan pemrograman pada sisi server. Walaupun bukan hanya tentang bahasa, setidaknya bahasa tidak menjadi penghalang. Pada 2009, Ryan Dahl melihat potensi JavaScript pada bahasa di sisi server dan lahirlah Node.js.
Saat ini, web developer dapat menggunakan JavaScript secara bebas tanpa mengindahkan pengguna yang menggunakan browser lama dengan menggunakan teknologi transkompilasi. Webpack telah menjadi solusi untuk mengatasi ketergantungan pada aplikasi web dan memastikan kinerjanya.
Express
Website Express dapat dideskripsikan sebagai “framework Node.js yang minimal dan fleksibel yang memberikan fitur mumpuni untuk web dan aplikasi mobile”.
Minimal
Salah satu aspek yang disuka dari Express. Filosofi dari Express adalah memberikan layer yang minimal antara ide programmer dengan server. Minimal disini tidak berarti bahwa framework tidak memiliki ketahanan atau tidak memiliki banyak fitur. Arti minimal disini, memudahkan programmer dan memberikan programmer ruang untuk berekspresi serta memberikan hal yang berguna kepada user secara bersamaan. Express memberikan minimal Framework dan programmer dapat memberikan fungsi-fungsi Express sesuai yang dibutuhkan di tempat-tempat yang berbeda, menggantikan hal apapun yang tidak memenuhi kebutuhan sistem
Express memberikan anda minimal Framework, menggantikan coding-coding yang kompleks dan misterius dengan coding yang mudah. Terkadang programmer menghabiskan waktu untuk menganalisa fungsi yang tidak penting atau menggantikan fungsi yang tidak memenuhi kriteria. . Dengan Express, programmer bisa menambah apapun di waktu kapan pun.
Express
Website Express dapat dideskripsikan sebagai “framework Node.js yang minimal dan fleksibel yang memberikan fitur mumpuni untuk web dan aplikasi mobile”.
Minimal
Salah satu aspek yang disuka dari Express. Filosofi dari Express adalah memberikan layer yang minimal antara ide programmer dengan server. Minimal disini tidak berarti bahwa framework tidak memiliki ketahanan atau tidak memiliki banyak fitur. Arti minimal disini, memudahkan programmer dan memberikan programmer ruang untuk berekspresi serta memberikan hal yang berguna kepada user secara bersamaan. Express memberikan minimal Framework dan programmer dapat memberikan fungsi-fungsi Express sesuai yang dibutuhkan di tempat-tempat yang berbeda, menggantikan hal apapun yang tidak memenuhi kebutuhan sistem
Express memberikan anda minimal Framework, menggantikan coding-coding yang kompleks dan misterius dengan coding yang mudah. Terkadang programmer menghabiskan waktu untuk menganalisa fungsi yang tidak penting atau menggantikan fungsi yang tidak memenuhi kriteria. . Dengan Express, programmer bisa menambah apapun di waktu kapan pun.
Aplikasi pada sisi server dan sisi klien
Aplikasi pada sisi server adalah dimana halaman-halaman pada aplikasi diberikan server dan dikirimkan ke klien. Aplikasi pada sisi klien dihasilkan pada bundle yang dikirimkan pada pertama kali. Pada 1999, aplikasi pada sisi server menjadi sebuah standar. Term aplikasi web juga diperkenalkan pada tahun yang sama. Pada 2012, saat smartphone mulai booming, hal yang paling umum adalah memberikan informasi lewat jaringan seminimal mungkin.
Aplikasi pada sisi server sering disebut dengan server-side rendered (SSR), dan aplikasi pada sisi klien biasanya disebut dengan single-page applications (SPAs). Aplikasi sisi klien biasanya menggunakan framework seperti React, Angular, dan Vue.
Pada umumnya, jika server mengirim file HTML, dan user experience-nya mewah, dilakukan rendering pada sisi klien.
Express tidak peduli apakah programmer membuat aplikasi pada sisi server atau sisi klien. Express akan dengan senang hati untuk memenuhi kebutuhan keduanya.
History Singkat Express.
TJ Holowaychuk, yang membuat Express mendeskripsikan Express sebagai Framework web yang terinspirasi dai Sinatra, yaitu web framework yang berdasar pada Ruby. Tidak mengherankan bahwa Express terinspirasi dari Ruby. Ruby kaya akan beragam cara pendekatan untuk development website, yang ditujukan untuk mempercepat, efisiensi, dan mudah untuk maintenance pada web development. Selain terinspirasi dari Sinatra, Express juga memiliki jalinan dengan Connect, “plug-in” library untuk Node.js.
Dengan kata lain, Node.js memiliki kesamaan dengan web server lain, seperti Microsoft IIS atau Apache. Seperti layaknya Express, pendekatan Node.js pada web server sangat minimal. Tidak seperti IIS atau Apache yang membutuhkan tahunan untuk menguasainya, Node.js mudah dikonfigurasikan .
Perbedaan yang mencolok lainyya antara Node.js dan tradisional web server adalah single thread. Single thread menyederhanakan penulisan aplikasi web dan jika membutuhkan kinerja aplikasi multithread, programmer dapat menambahkan instances pada Node.js dan akan mendapatkan performa dari multithreading secara efektif.
Dalam penulisan aplikasi, Node.js kurang lebih sama seperti PHP atau Ruby dibandingkan dengan .Net ataupun Java. Keuntungan lain adalah Node.js platform yang independen. Node.js bukan platform pertama atau satu-satunya teknologi platform independen, namun platform independensi lebih kearah spectrum dibanding proposisi binary. Contohnya, kita bisa menjalankan aplikasi .NET pada server Linux berkat Mono, tetapi hal ini sangat merepotkan karena dokumentasi yang berantakan dan sistem yang tidak kompatibel. Sama juga jika kita menjalankan aplikasi PHP dari Windows server, tidak akan semudah menjalankannya seperti di Linux. Node.js dapat dikonfigurasikan pada semua Sistem Operasi (Windows, MacOS dan Linux) dan mempermudah kolaborasi. Dalam desain website, sangat umum menyatukan platform MacOs dan Windows.
Ekosistem Node.Js
Node.js terletak dengan inti sistem stack. Software ini memungkinkan Javascript untuk bekerja pada server dan tidak bergantung pada browser, yang memungkinkan framework yang ditulis menggunakan JavaScript (seperti Express) dapat digunakan. Komponen lain yang tidak kalah penting adalah database. Node.js memiliki pendekatan baru untuk database storage, disebut dengan NoSQL database.
Dikarenakan pembuatan website bergantung pada kumpulan teknologi, muncul akronim “stack” yang berdasarkan pada teknologi yang digunakan di web tersebut. Contohnya, gabungan dari Linux, Apache, MySQL dan PHP disebut sebagai LAMP stack. Engineer pada MongoDB yaitu Valeri Karpov, menggunakan akronim MEAN: Mongo, Express, Angular dan Node.
Node merupakan salah satu yang muncul dan mendominasi. Sama seperti Express yang menjadi salah satu web framework yang dominan yang ketenarannya sama seperti Node. Komponen lain yang penting untuk web app development adalah database server dan rendering engine.
Licensing
Dalam melakukan pengembangan aplikasi Node, developer harus memperhatikan licensing. Salah satu keindahan ekosistem Node adalah banyaknya paket yang tersedia. Namun, paket-paket tersebut terdapat license, dan parahnya lagi, setiap paket bisa saja bergantung dengan paket lain.
Berita baiknya adalah, license yang popular pada paket Node adalah MIT license yang sangat permisif (tidak mewajibkan untuk license) yang membolehkan developer melakukan apapun sesuai keinginan, termasuk menggunakannya pada software closed source. Namun, tidak semua paket menggunakan MIT license. Ada beberapa paket yang tersedia pada npm yang akan melihat license yang digunakan untuk project. Cari npm untuk nlf atau licence-report.
Selain MIT License, terdapat license lain yang umum, yaitu GNU General Public License (GPL), Apache 2.0, Berkeley Software Distribution (BSD)
Web Development with Node and Express, 2nd Edition, Ethan Brown.