@atlas.jsDibangun dengan ❤️ di STRV
Atlas.js adalah platform yang terutama dibuat untuk menggunakan kembali potongan kode di antara beberapa proyek dan untuk mengurangi boilerplate aplikasi umum seperti urutan startup & shutdown dari aplikasi node.js standar. Anda menulis komponen (atau menggunakan kami) yang menyediakan fungsionalitas (seperti komponen basis data), memasukkannya ke dalam instance Atlas dan Atlas akan mengurus sisanya. Menggunakan Atlas Anda mengurangi inisialisasi aplikasi dan urutan shutdown ke objek konfigurasi dan satu baris kode.
Berikut adalah daftar komponen yang diawasi STRV.
| Komponen | Versi | Info |
|---|---|---|
| @atlas.js/atlas | Paket utama dengan semua yang dibutuhkan untuk bergulir | |
| @atlas.js/cli | Utilitas CLI untuk mengelola aplikasi atlas Anda | |
| @atlas.js/generator-atlas | Generator yeoman untuk dengan cepat perancah aplikasi atlas baru Anda | |
| @atlas.js/AWS | Untuk berinteraksi dengan AWS | |
| @atlas.js/braintree | Untuk berinteraksi dengan pembayaran braintree | |
| @atlas.js/firebase | Untuk berinteraksi dengan layanan firebase | |
| @atlas.js/koa | Layanan dan kait untuk mengimplementasikan HTTP API berbasis KOA | |
| @atlas.js/Mongoose | Layanan dan kait untuk bekerja dengan model MongoDB dan Mongoose | |
| @atlas.js/keberatan | Layanan dan kait untuk bekerja dengan keberatan.js | |
| @atlas.js/sequelize | Layanan dan kait untuk bekerja dengan sektoral | |
| @atlas.js/nodemailer | Layanan Email Generik dengan Dukungan untuk Banyak Penyedia | |
| @atlas.js/repl | Komponen untuk jatuh ke cangkang interaktif dengan atlas dimuat | |
| @atlas.js/templat | Tindakan untuk Rendering Template ke dalam string HTML Menggunakan Consolidate.js |
Tidak menemukan apa yang Anda cari? Tulis sendiri! Periksa tutorial yang ditautkan di bawah ini.
Butuh bantuan? Lihatlah folder tutorial untuk ... yah ... tutorial. ?
Bagian berikut berbicara tentang motivasi di balik keberadaan Atlas.js.
Ketika Anda terbiasa dengan Atlas.js dan komponen buatan STRV, Anda akan mulai melihat dan bahkan merasa bahwa banyak upaya telah dilakukan untuk memastikan Anda dapat berbagi banyak kode antar proyek. Kapan pun memungkinkan, Atlas.js akan mencoba memandu Anda sedemikian rupa sehingga Anda harus dapat menulis cukup banyak kode dengan cara yang tidak spesifik bisnis dan hanya menerbitkannya ke NPM sebagai modul dan nanti ketika Anda membutuhkannya lagi pada proyek yang berbeda, cukup instal lagi dan semuanya hanya berfungsi.
Mengelola urutan startup tidak selalu mudah. Kadang -kadang bahkan tidak jelas mengapa seseorang harus mengganggu diri mereka sendiri dengan urutan startup yang benar dari suatu aplikasi - saat ini banyak perpustakaan yang memerlukan beberapa inisialisasi async mendukung beberapa jenis caching permintaan di mana Anda hanya mulai menggunakan perpustakaan dan itu akan memberikan hasilnya saat siap.
Ini memiliki beberapa masalah:
Beberapa layanan bisa dimulai lebih cepat dari yang lain
Ketika Anda memulai server HTTP sebelum Anda memiliki koneksi database yang siap, dapat terjadi bahwa Anda akan menerima lalu lintas yang belum siap untuk dilayani. Untuk beban kecil ini mungkin bukan masalah tetapi untuk situs lalu lintas tinggi itu bisa berarti beberapa detik penundaan dan Anda bahkan mungkin menghabiskan memori yang tersedia hanya dengan menangani permintaan yang tertunda terlalu lama. Dalam hal ini, permintaan jenis ini tidak didukung, bahkan mungkin aplikasi Anda hanya akan macet.
Beberapa layanan bisa dihentikan lebih cepat dari yang lain
Apa yang terjadi pada aplikasi Anda saat Anda menutup koneksi database Anda sebelum Anda menutup server http? Tentu, itu mudah dikelola hanya dengan dua layanan, tetapi bagaimana jika Anda memiliki lebih banyak? Mungkin Anda memiliki beberapa server Redis di suatu tempat di sana, mungkin beberapa koneksi cluster Elasticsearch dan yang lainnya - itu bisa menjadi cukup rumit cukup cepat. Dengan Atlas, Anda secara intuitif memberikan pesanan dan selesai - Atlas akan menghentikan layanan satu per satu.
Beberapa pengembang tidak peduli dan hanya process.exit() benda itu
Beberapa pengembang tidak ingin diganggu dengan membersihkan sumber daya mereka dengan benar seperti waktu tunggu, soket, pendengar dll. Dan ketika saatnya tiba mereka hanya memaksa prosesnya. Namun, ini dapat mengakibatkan beberapa permintaan klien diakhiri sebelum memberikan respons, menghasilkan kesalahan aneh, halaman kosong, data yang tidak lengkap dll.
Ketika Anda memutuskan untuk masuk semua apa yang ditawarkan Atlas.js dan menggunakan komponen sepenuhnya, Anda akan segera menyadari bahwa sangat mudah untuk menavigasi basis kode yang sama sekali tidak dikenal dengan relatif mudah - Anda tahu apa yang ada di mana dan di mana harus mencari fungsionalitas tertentu. Saat Anda bekerja untuk perusahaan seperti STRV, tidak jarang beralih proyek setiap beberapa bulan atau lebih. Ketika Anda dapat mengurangi waktu yang dibutuhkan untuk menggunakan pria/gal baru ke tim Anda, semua pihak yang terlibat akan lebih bahagia.
Ini adalah contoh penggunaan lengkap. Aplikasi dunia nyata akan membagi setidaknya bagian konfigurasi menjadi modulnya sendiri alih -alih menulisnya sejajar seperti ini.
Juga, Anda mungkin ingin memeriksa
Atlas.init(), yang menginisialisasi semua komponen untuk Anda berdasarkan tata letak file/folder yang Anda tentukan. ?Jika Anda ingin mengambil jalan yang mudah, lihat generator yeoman kami untuk dengan cepat menghasilkan struktur folder dasar dan memasang semua hal yang dibutuhkan.
// We start by importing the required components...
import { Atlas } from '@atlas.js/atlas'
import * as Koa from '@atlas.js/koa'
// Now we need an instance of Atlas, so let's make one
const atlas = new Atlas ( {
// We MUST specify the root folder where our app resides
// This should usually point to the folder where your package.json resides
root : __dirname ,
// Setting env is optional and it fallbacks to NODE_ENV, of course
env : process . env . NODE_ENV ,
// This is where all the configuration data should be specified, for all the components
config : {
// Configuration for services
services : {
// The `http` configuration will be given to the service which we will name as `http`
// (see the `atlas.service()` call below)
http : {
// This goes to the `listen()` function call
listen : {
port : 3000 ,
} ,
// Any properties which Koa supports can be set here
koa : {
proxy : true ,
} ,
} ,
} ,
// Configuration for actions
actions : { } ,
// ...aaand configuration for hooks
hooks : { } ,
} ,
} )
// We need to add the components we want to use to the application
// The first argument is the component's name - it will be used to locate the component's
// configuration and also the service will be exposed on that property:
// `atlas.services.http`
atlas . service ( 'http' , Koa . Service )
// Great, we can finally start the app!
atlas . start ( )
. then ( ( ) => console . log ( 'ready!' ) )
. catch ( err => console . error ( err ) )
export default atlasOpsi konfigurasi yang diterima setiap komponen didokumentasikan dalam repositori/folder paket mereka sendiri.
Jadi Anda memiliki aplikasi dengan layanan KOA yang dikonfigurasi dan berjalan ... bagus! Tetapi Anda mungkin bertanya -tanya di mana harus mendefinisikan middleware dan rute Anda dan semua hal penting lainnya? Anda harus memeriksa folder tutorial untuk info lebih lanjut!
Lihat file lisensi untuk informasi.