Secara umum, server harus memiliki respons yang berbeda untuk permintaan URL yang berbeda. Kita perlu menyediakan URL yang diminta dan parameter GET dan Posting yang diperlukan lainnya untuk rute, dan kemudian rute perlu menjalankan kode yang sesuai berdasarkan data ini. Semua data yang kita butuhkan dimasukkan dalam objek permintaan, yang dilewatkan sebagai parameter pertama dari fungsi panggilan balik OnRequest (). Untuk mengurai data ini, modul tambahan perlu dipanggil, yaitu Modul URL dan QueryString.
URL: Ini
Modul memiliki utilitas untuk resolusi dan penguraian URL. Hubungi membutuhkan ('url') ke
Gunakan itu.
Objek URL yang diuraikan memiliki beberapa atau semua bidang berikut, tergantung pada apakah mereka ada atau tidak di string URL. Setiap bagian yang tidak ada dalam string URL tidak akan berada di objek yang diuraikan. Contoh ditampilkan untuk URL
'http: // pengguna: [email protected]: 8080/p/a/t/h? kueri = string#hash'
HREF: URL lengkap yang awalnya diuraikan. Baik protokol dan host lebih rendah.
Contoh: 'http: // user: [email protected]: 8080/p/a/t/h? Kueri = string#hash'
Protokol: Protokol permintaan, lebih rendah.
Contoh: 'http:'
Host: Bagian host yang lebih rendah dari URL, termasuk informasi port.
Contoh: 'host.com:8080'
AUTH: Bagian informasi otentikasi dari URL.
Contoh: 'Pengguna: Pass'
HostName: Hanya bagian host host yang lebih rendah dari host.
Contoh: 'host.com'
Port: Bagian nomor port dari host.
Contoh: '8080'
Pathname: Bagian jalur URL, yang datang setelah tuan rumah dan sebelum kueri, termasuk tebasan awal jika ada.
Contoh: '/p/a/t/h'
Cari: Bagian 'Query String' dari URL, termasuk tanda tanya utama.
Contoh: '? Query = String'
Jalur: Penggabungan Pathname dan Cari.
Contoh: '/p/a/t/h? Kueri = string'
Kueri: Bagian 'params' dari string kueri, atau objek yang di-pars.
Contoh: 'query = string' atau {'kueri': 'string'}
Hash: Bagian 'fragmen' dari URL termasuk penandatangan pound.
Contoh: '#hash'
Kami akan menggunakan injeksi ketergantungan untuk menambahkan modul routing lebih longgar. Fungsi yang merupakan target perutean disebut penangan permintaan. Implementasi penangan permintaan membutuhkan pembuatan modul yang disebut Requesthandlers, yang tentu saja dapat dinamai lainnya. Dan untuk setiap penangan permintaan, tambahkan fungsi placeholder, dan kemudian ekspor fungsi -fungsi ini sebagai metode modul, sehingga penangan permintaan dan modul perutean dapat dihubungkan ke rute, sehingga rute dapat diikuti.
Terutama dicatat bahwa serangkaian penangan permintaan perlu diteruskan melalui objek di sini, dan objek perlu disuntikkan ke fungsi rute () menggunakan metode yang digabungkan secara longgar.
Kita bisa mendapatkan fungsi penanganan permintaan dari objek yang ditularkan dengan cara yang sama seperti mendapatkan elemen dari array asosiatif, jadi kita memiliki ekspresi ringkas dan halus seperti pegangan [pathname] ();. Kode terlihat seperti ini:
var handle = {} handle ["/"] = requestHandlers.start; handle ["/start"] = requestHandlers.start; handle ["/unggah"] = requestHandlers.upload;