Dokumen ini mungkin sudah ketinggalan zaman jika dibandingkan dengan dokumentasi dalam bahasa Inggris. Untuk informasi terkini, lihat dokumentasi dalam bahasa Inggris.
Tidak ada jawaban pasti untuk pertanyaan ini. Jawabannya tergantung pada skala aplikasi Anda dan tim yang terlibat. Sefleksibel mungkin, sehingga Express tidak membuat asumsi dalam hal struktur.
Kumpulan rute dan logika khusus lainnya di dalam aplikasi dapat berada di banyak file sesuai keinginan Anda, dalam struktur direktori apa pun yang Anda inginkan. Lihat contoh berikut ini sebagai inspirasi:
Selain itu, ada ekstensi (extension) dari pihak ketiga untuk Express, yang menyederhanakan beberapa pola berikut:
Express tidak memiliki gagasan tentang database. Jadi, konsep ini diserahkan kepada modul Node dari pihak ketiga, memungkinkan Anda melakukannya secara antarmuka dengan hampir semua database.
Lihat LoopBack untuk kerangka kerja berbasis Express yang berpusat pada model.
Otentikasi adalah area yang beropini (opinionated area) lainnya yang tidak dimasuki oleh Express. Sehingga Anda dapat menggunakan skema otentikasi apa pun yang Anda inginkan. Untuk skema username/password sederhana, Anda dapat melihat contoh ini.
Express mendukung template engine apa pun yang sesuai dengan signature (path, locals, callback)
.
Untuk menormalkan antarmuka mesin template engine dan caching, lihat
consolidate.js
daftar template engine yang mendukung express. Template engine yang tidak terdaftar mungkin masih mendukung signature dari Express.
Untuk informasi lebih lanjut, lihat Penggunaan template engine dengan Express.
Di Express, respon 404 bukanlah hasil dari sebuah error, jadi error-handler middleware tidak akan menangkapnya. Perilaku ini terjadi karena respon 404 hanya menunjukkan tidak adanya pekerjaan tambahan yang harus dilakukan; dengan kata lain, Express telah menjalankan semua fungsi dan rute dari middleware yang ada, kemudian menemukan bahwa tidak ada satupun dari mereka yang merespons. Jadi, yang Anda perlukan lakukan adalah menambahkan fungsi middleware di bagian paling bawah dari stack yang ada (di bawah semua fungsi lainnya). Oleh karena itu, untuk menangani respon 404 secara sederhana adalah sebagai berikut:
app.use((req, res, next) => {
res.status(404).send('Maaf data tidak dapat ditemukan!')
})
Tambahkan rute secara dinamis saat runtime pada class (instance) express.Router()
sehingga rute tidak digantikan oleh fungsi middleware.
Anda dapat mendefinisikan error-handler middleware dengan cara yang sama seperti middleware lainnya, kecuali dengan empat argumen, bukan tiga; secara khusus dengan signature (err, req, res, next)
:
app.use((err, req, res, next) => {
console.error(err.stack)
res.status(500).send('Ada yang salah!')
})
Untuk informasi selengkapnya, lihat Penanganan Error.
Jangan lakukan! Tidak perlu “merender” HTML dengan fungsi res.render()
.
Jika Anda memiliki file tertentu, gunakan fungsi res.sendFile()
.
Jika Anda menyajikan banyak aset dari sebuah direktori, gunakan fungsi middleware express.static()
.