Cara Membangun MicroServices Menggunakan NodeJs, Express, Dan MongoDB
Sebagian besar dari kita pernah mengalami masa-masa sulit dengan aplikasi besar dengan banyak fitur, integrasi API, konektivitas database, dan banyak lagi. Fitur dan pembaruan baru akan dirilis. Tentu saja, Anda perlu memperbaiki bug dan menyimpan kodenya.
Membangun aplikasi dunia nyata ini membutuhkan pemrograman dinamis, yang meningkatkan ukuran aplikasi di luar kendali.
Pola monolit ini membuat sangat sulit untuk mengurangi atau menyederhanakan ukuran aplikasi Anda. Oleh karena itu, penting untuk mengubah struktur besar dan homogen menjadi program kecil dan independen untuk kelancaran aplikasi Anda. Kompleksitas serupa dapat dengan mudah diselesaikan jika aplikasi NodeJs Anda dibangun di atas microservices. Terlebih lagi untuk ekosistem Node.js.
Jadi saya akan menunjukkan cara membangun microservices
Blog ini hanya dimaksudkan untuk memberikan gambaran tentang bagaimana membangun sebuah layanan. Untuk demo microservices yang berfungsi penuh, kunjungi https://github.com/Nomercy10/ecommerce-micro-services.
Dalam contoh ini, kami akan membangun dua microservices, users & orders. Idenya sangat sederhana dan user memesannya. Buat order dengan semua detail yang Anda butuhkan.
Berikut daftar fitur yang dimiliki masing-masing microservices ini:
user
- Dapatkan semua users
- Dapatkan user
- Buat user baru
- DEL user menurut userId
order
- Dapatkan semua orders
- Dapatkan order
- Dapatkan order user
- Buat order baru untuk user
- Hapus order
- order DEL user
Teknologi
- Node.js: Acara Backend I / O
- Express: Kerangka aplikasi jaringan node.js berkecepatan tinggi
- MongoDb: Basis data NoSql untuk aplikasi modern
Saat Anda membangun microservices ini, Anda membuat folder terpisah untuk setiap microservices. Setiap folder memiliki modul package.json dan modul node sendiri yang diinstal.
Mari kita mulai
Instal
Buat folder users dan instal dependensi berikut
Users Menginstal Dependensi
Informasi dependensi
- body-parser: Ini adalah middleware parsing body Node.js yang dapat mengurai request yang masuk di middleware sebelum handler dan menggunakannya di properti req.body.
- axios: Promise basis Client HTTP berbasis untuk browser dan node Js.
- nodemon: Alat yang digunakan untuk mengembangkan NodeJs untuk menyediakan hot reload untuk perubahan file.
- mongoose: Alat pemodelan objek MongoDB yang dirancang untuk bekerja di environtment asinkron.
Development
Buat Users.js di folder /Users. File ini akan menjadi titik masuk untuk microservices user.
Muat dependensi
Load dependencies
Instal driver MongoDBNode.js
Driver MongoDB Node.js memudahkan untuk bekerja dengan database MongoDB dari dalam aplikasi Node.js Anda. Driver diperlukan untuk terhubung ke database dan menjalankan kueri yang dijelaskan dalam seri panduan memulai ini.
Jika Anda belum menginstal driver MongoDB Node.js, Anda dapat menginstalnya dengan perintah berikut:
Buat cluster MongoDB Atlas gratis dan muat data sampel
Selanjutnya, Anda memerlukan database MongoDB. Cara termudah untuk memulai dengan MongoDB adalah dengan menggunakan Atlas, database MongoDB sebagai layanan yang terkelola sepenuhnya.
Buka Atlas dan buat cluster baru di tingkat gratis Anda. Secara garis besar, cluster adalah sekumpulan node tempat salinan database disimpan. Setelah lapisan dibuat, muat data sampel.
Dapatkan informasi koneksi cluster
Langkah terakhir adalah menyiapkan cluster Anda untuk terhubung.
Di Atlas, buka cluster Anda dan klik Connect. Panduan Koneksi Cluster ditampilkan.
Wizard akan menambahkan alamat IP saat ini ke daftar akses IP dan meminta Anda untuk membuat user MongoDB jika Anda belum melakukannya. Pastikan untuk mencatat nama user dan kata sandi yang Anda gunakan untuk user MongoDB baru, karena Anda akan membutuhkannya di langkah selanjutnya.
Wizard kemudian meminta Anda untuk memilih metode koneksi. Pilih Hubungkan Aplikasi. Saat wizard meminta Anda untuk memilih versi driver, pilih Node.js atau yang lebih baru. Salin string koneksi yang disediakan untuk digunakan di bagian berikutnya.
Lihat dokumentasi resmi untuk informasi lebih lanjut tentang cara mengakses wizard koneksi dan selesaikan langkah-langkah di atas.
Hubungkan ke database dari aplikasi Node.js Anda
Setelah semua pengaturan selesai, saatnya membuat kode. Mari buat skrip Node.js yang terhubung ke database dan daftar database di cluster.
Impor Client mongoose
Client mongoose digunakan untuk terhubung ke database MongoDB. Ini adalah contoh MongoDb untuk menghubungkan ke cluster, mengakses database dalam cluster itu, dan menutup koneksi ke cluster itu.
Setelah ini, hal pertama yang perlu Anda lakukan adalah membuat konstanta untuk URI koneksi. URI koneksi adalah string koneksi yang Anda salin ke Atlas di bagian sebelumnya. Saat menempelkan string, jangan lupa untuk memperbarui <username> dan <password> menjadi kredensial user yang Anda buat di bagian sebelumnya. String koneksi berisi placeholder <dbname>.</dbname>
Catatan: Nama user dan kata sandi yang Anda tentukan dalam string koneksi tidak sama dengan kredensial Atlas Anda.
Connection string URI
Sekarang setelah Anda memiliki URI, Anda dapat membuat instance MongoDB.
inisialisasi klien MongoDB dan memuat instance global
Database Model
Sekarang koneksi sudah diatur, mari kita lanjutkan dan buat model data MongoDB. gunakan mongoose.model
Modelnya adalah fancy konstruktor yang dikompilasi dari definisi Schema. Sebuah contoh dari model disebut dokumen. Model bertanggung jawab untuk membuat dan membaca dokumen dari database MongoDB yang mendasarinya.
API
Agar blog ini tidak terlalu panjang, saya hanya akan menunjukkan kepada Anda dua API. Anda dapat membuat fitur lain yang telah saya referensikan dan fitur sebanyak yang Anda butuhkan.
Dapatkan semua order untuk API user
Seperti disebutkan di atas, memicu order "/user/:uid/" membuat panggilan API eksternal ke microservices order, memanggil "/order?Uid=" GET API. Dengan cara ini, kami berkomunikasi dan berbagi data antar microservices.
Buat API user baru
Dalam contoh di atas, kami membuat user baru. Pertama, buat objek newUser menggunakan respons dari request body.
Kemudian buat instance "user" baru, instance user dari model data MongoDB, dan berikan "newUser".Anda sekarang dapat menyimpan data ke MongoDB menggunakan properti .save(). Anda dapat menggunakan .then sebagai promise berbasis properti untuk melakukan operasi yang diperlukan.
Catatan: Metode membuat microservices untuk order tidak ditampilkan di sini karena sangat sederhana dan mirip dengan yang kami lakukan untuk microservices user. Jika Anda masih perlu melihat cara menerapkannya, buka tautan repositori github di atas di awal blog Anda.
terima kasih banyak! Happy Coding :)