Apa itu Express.js?


439

Saya seorang pelajar di Node.js .

  1. Apa itu Express.js ?
  2. Apa maksudnya dengan Node.js?
  3. Mengapa kita benar-benar membutuhkan Express.js? Bagaimana ini berguna untuk kita gunakan dengan Node.js?
  4. Apa itu Redis ? Apakah itu datang dengan Express.js?

28
Gulir ke bawah ke jawaban komunitas-wiki (yang memiliki karunia +50). Saya menemukan itu lebih bermanfaat daripada jawaban yang ditandai.
Shishir Gupta

Jawaban:


266

Ini lebih dari menyederhanakannya, tetapi Express.js adalah untuk Node.js apa itu Ruby on Rails atau Sinatra untuk Ruby .

Express 3.x adalah kerangka kerja aplikasi web yang ringan untuk membantu mengatur aplikasi web Anda menjadi arsitektur MVC di sisi server. Anda dapat menggunakan berbagai pilihan untuk bahasa templating Anda (seperti EJS , Jade , dan Dust.js ).

Anda kemudian dapat menggunakan database seperti MongoDB dengan Mongoose (untuk pemodelan) untuk memberikan backend untuk aplikasi Node.js Anda. Express.js pada dasarnya membantu Anda mengelola segalanya, dari rute, hingga menangani permintaan dan tampilan.

Redis adalah toko kunci / nilai - yang biasa digunakan untuk sesi dan caching di aplikasi Node.js. Anda dapat melakukan lebih banyak dengan itu, tetapi untuk itulah saya menggunakannya. Saya menggunakan MongoDB untuk hubungan yang lebih kompleks, seperti item baris <-> pesanan <-> hubungan pengguna. Ada modul (terutama connect-redis) yang akan bekerja dengan Express.js. Anda harus menginstal Redis database di server Anda.

Berikut ini tautan ke panduan Express 3.x: https://expressjs.com/en/3x/api.html


20
Express lebih seperti sinatra daripada rail.
separuh

11
Express secara khusus terinspirasi oleh sinatra. Mungkin fitur terpentingnya adalah perutean; itu juga menyediakan semua middleware yang disediakan oleh connect (ke titik di mana semua kecuali aplikasi yang paling spesifik yang membutuhkan middleware connect kemungkinan akan menggunakan express).
ebohlman

Saya akan mengatakan redis ideal untuk hubungan yang kompleks sebenarnya.
plus-

Tautan EJS saat ini mati.
David Spector

Saya benar-benar tidak mengerti bagaimana MVC berhubungan dengan Express. Jika saya ingat dengan benar, Express tidak memiliki model dan tampilan. Ini adalah kerangka kerja berbasis middleware, bukan kerangka kerja MVC. Tolong jelaskan ini.
Gherman

382

1) Apa itu Express.js?

Express.js adalah kerangka kerja Node.js. Ini adalah kerangka kerja paling populer saat ini (yang paling banyak membintangi NPM).

Masukkan deskripsi gambar di sini.

Itu dibangun di sekitar konfigurasi dan kesederhanaan granular Connect middleware. Beberapa orang membandingkan Express.js dengan Ruby Sinatra vs Ruby on Rails yang besar dan keras kepala .

2) Apa tujuan penggunaannya dengan Node.js?

Anda tidak perlu mengulang kode yang sama berulang-ulang. Node.js adalah mekanisme I / O tingkat rendah yang memiliki modul HTTP. Jika Anda hanya menggunakan modul HTTP, banyak pekerjaan seperti parsing payload, cookie, sesi penyimpanan (dalam memori atau dalam Redis ), memilih pola rute yang tepat berdasarkan ekspresi reguler akan memiliki untuk menjadi re-dilaksanakan. Dengan Express.js, itu hanya ada untuk Anda gunakan.

3) Mengapa kita benar-benar membutuhkan Express.js? Bagaimana ini berguna untuk kita gunakan dengan Node.js?

Jawaban pertama harus menjawab pertanyaan Anda. Jika tidak, maka cobalah untuk menulis server REST API kecil di Node.js polos (yaitu, hanya menggunakan modul inti) dan kemudian di Express.js. Yang terakhir akan membawa Anda 5-10x lebih sedikit waktu dan garis kode.

Apa itu Redis? Apakah itu datang dengan Express.js?

Redis adalah penyimpanan nilai kunci yang persisten dan cepat. Anda bisa menggunakannya secara opsional untuk menyimpan sesi dengan Express.js, tetapi Anda tidak perlu melakukannya. Secara default, Express.js memiliki penyimpanan memori untuk sesi. Redis juga dapat digunakan untuk pekerjaan antrian, misalnya pekerjaan email.

Lihatlah tutorial saya tentang server REST API dengan Express.js .

MVC tetapi tidak dengan sendirinya

Express.js bukan kerangka model-view-controller dengan sendirinya. Anda perlu membawa objek-relasional perpustakaan pemetaan Anda sendiri seperti Mongoose untuk MongoDB, Sequelize ( http://sequelizejs.com ) untuk database SQL, garis air ( https://github.com/balderdashy/waterline ) untuk banyak database ke dalam tumpukan.

Alternatif

Kerangka kerja Node.js lain untuk dipertimbangkan ( https://www.quora.com/Node-js/Which-Node-js-framework-is-best-for-building-a-RESTful-API ):

UPDATE: Saya mengumpulkan sumber daya ini yang membantu orang dalam memilih kerangka kerja Node.js: http://nodeframework.com

UPDATE2: Kami menambahkan beberapa statistik GitHub ke nodeframework.com jadi sekarang Anda dapat membandingkan tingkat bukti sosial (bintang GitHub) untuk 30+ kerangka kerja pada satu halaman.

masukkan deskripsi gambar di sini

Tumpukan penuh:

Hanya REST API:

Ruby on Rails seperti:

Sinatra suka:

Lain:

Middleware:

Generator situs statis:


Apakah benar untuk mengatakan bahwa - Express.js adalah modul Node.js (yang telah Anda bahas sebagai kerangka kerja pada baris 1 Anda). Saya sudah sering mendengar istilah nodeJs module. Kerangka kerja di dalam kerangka kerja adalah sedikit berita bagi saya.
RBT

Ya, seperti dalam praktiknya, Express ADALAH modul Node Package Manager (npm) (alias paket) sebanyak itu ditambahkan ke aplikasi seperti modul lain dari npm. (Jika Anda melihat folder sumber aplikasi Node Express, Anda akan melihat folder bernama node_modules. Ini akan berisi sub-folder yang disebut express.) Tapi itu jauh lebih berguna daripada kebanyakan modul lain di luar npm karena memiliki memuat modul dependen yang secara efektif menyediakan pembuat kode aplikasi dengan API untuk tugas-tugas umum. Kerangka kerja di dalam kerangka kerja? Lebih mirip kerangka kerja implementasi yang dapat dilampirkan ke kerangka kerja server-penciptaan.
Batang

15
  1. Apa itu Express.js?

Express.js adalah kerangka kerja server aplikasi web Node.js, yang dirancang untuk membangun aplikasi web satu halaman, multi-halaman, dan hybrid. Ini adalah kerangka kerja server standar de facto untuk node.js.

Kerangka kerja dibangun di atas Express.

Beberapa kerangka kerja Node.js populer dibangun di atas Express:

LoopBack: Kerangka kerja Node.js sumber terbuka yang sangat bisa diperluas untuk membuat API REST ujung ke ujung yang dinamis dengan cepat.

Sails: Kerangka kerja MVC untuk Node.js untuk membangun aplikasi yang praktis dan siap produksi.

Kraken: Lapisan aman dan terukur yang memperluas Express dengan menyediakan struktur dan konvensi.

MEAN: Kerangka kerja fullstack JavaScript yang disederhanakan yang menyederhanakan dan mempercepat pengembangan aplikasi web.

  1. Apa maksudnya dengan Node.js?
  2. Mengapa kita benar-benar membutuhkan Express.js? Bagaimana ini berguna untuk kita gunakan dengan Node.js?

Express menambahkan perutean sederhana dan dukungan mati untuk Connect middleware, memungkinkan banyak ekstensi dan fitur berguna.

Sebagai contoh,

  • Ingin sesi? Itu disana
  • Ingin badan / string string POST POST? Itu disana
  • Ingin templating mudah melalui giok, kumis, ejs, dll? Itu disana
  • Ingin penanganan kesalahan yang baik yang tidak akan menyebabkan seluruh server macet?

10
  1. Express.js adalah kerangka kerja modular untuk Node.js
  2. Ini digunakan untuk pembuatan aplikasi dan layanan web yang lebih mudah
  3. Express.js menyederhanakan pengembangan dan membuatnya lebih mudah untuk menulis aplikasi yang aman, modular, dan cepat. Anda dapat melakukan semua itu di Node.js yang lama, tetapi beberapa bug dapat (dan akan) muncul, termasuk masalah keamanan (mis. Tidak melarikan diri dari string dengan benar)
  4. Redis adalah sistem basis data dalam memori yang dikenal dengan kinerja cepatnya. Tidak, tetapi Anda bisa menggunakannya dengan Express.js menggunakan klien redis

Saya tidak bisa lebih ringkas dari ini. Untuk semua kebutuhan dan informasi Anda yang lain, Google adalah teman Anda.


3

ExpressJS tidak bertulang kerangka kerja aplikasi web di atas NodeJS.

Itu dapat digunakan untuk membangun WebApps, API RESTFUL dll dengan cepat.

Mendukung banyak mesin template seperti Jade, EJS.

ExpressJS hanya menjadikan fungsi minimalis sebagai fitur inti dan karenanya tidak ada ORM atau DB yang didukung sebagai default. Tetapi dengan sedikit upaya expressjs aplikasi dapat diintegrasikan dengan database yang berbeda.

Untuk panduan memulai membuat aplikasi ExpressJS, lihat tautan berikut:

Tutorial Pengantar ExpressJS


3

Express adalah kerangka kerja modul untuk Node yang dapat Anda gunakan untuk aplikasi yang didasarkan pada server / s yang akan "mendengarkan" untuk setiap permintaan input / koneksi dari klien. Ketika Anda menggunakannya di Node, itu hanya mengatakan bahwa Anda meminta penggunaan file Express bawaan dari modul Node Anda.

Express adalah "tulang punggung" dari banyak Aplikasi Web yang memiliki back end di NodeJS. Dari apa yang saya tahu, aset utamanya adalah penyediaan sistem perutean yang menangani layanan "interaksi" antara 2 host. Ada banyak alternatif untuk itu, seperti Sails.



0

Express.js dibuat oleh TJ Holowaychuk dan sekarang dikelola oleh komunitas. Ini adalah salah satu kerangka kerja paling populer di node.js. Express juga dapat digunakan untuk mengembangkan berbagai produk seperti aplikasi web atau RESTful API. Untuk informasi lebih lanjut silakan baca di situs resmi expressjs.com.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.