Layak untuk mengerjakan ulang server nodeJS untuk menggunakan Connect (terutama untuk semua autentikasi)?

Selama 6 bulan terakhir, saya telah mengerjakan aplikasi nodeJS saya sendiri, tempat saya membangun semuanya sendiri dari awal. Hanya ada beberapa hal yang dilakukan server saya, karena sebagian besar pekerjaan di aplikasi saya dilakukan di front-end.

Satu hal yang sedang saya pertimbangkan untuk diterapkan adalah login pengguna + sistem otentikasi facebook untuk aplikasi. Sepertinya setiap autentikasi adalah kerangka kerja yang jauh lebih kuat untuk hal ini dibandingkan kerangka apa pun yang ada di luar sana. Namun, Anda harus memiliki Express atau Connect untuk menggunakannya.

Karena itu, saya sedang mempertimbangkan untuk mengerjakan ulang kode saya untuk menggunakan ConnectJS untuk (terutama) tujuan ini. Meskipun demikian, saya sangat suka memiliki server yang sangat sederhana yang hanya melakukan apa yang perlu dilakukan dan tidak lebih dari itu. Apakah ada modul lain untuk autentikasi yang sekuat setiap autentikasi yang tidak memerlukan Connect yang akan direkomendasikan oleh siapa pun?

Dan bagi Anda yang menggunakan Connect - seberapa praktiskah fitur lain yang ditawarkannya? Apakah layak melakukan gzip data yang akan dikembalikan oleh server? Apakah server file statis lebih cepat atau berbeda dari kode nodejs biasa yang melakukan hal yang sama?

Saya benar-benar ragu saat ini dan akan menghargai pemikiran apa pun dari orang-orang yang memiliki pengalaman pemrograman aplikasi nodejs baik dengan dan tanpa Connect.

Terbaik,
Sami

PERUBAHAN - jika setiap permintaan yang diterima server saya pada suatu saat akan melibatkan koneksi ke MongoDB menggunakan driver asli node-mongodb, apakah ini mengubah apa pun? Saya sedikit bingung apakah pada dasarnya saya dapat memiliki kode yang sudah saya tulis sebagai semacam modul yang bertindak sebagai salah satu item middleware yang dapat saya tambahkan untuk terhubung. Jika kalimat ini menunjukkan bahwa saya benar-benar salah memahami fungsi connect, saya akan menghargai klarifikasi apa pun.


person thisissami    schedule 14.11.2011    source sumber


Jawaban (2)


Connect adalah kerangka middleware. Artinya, ini semua tentang pemisahan dan penerapan middleware pihak ketiga (baca: milik Anda dan orang lain). Connect tidak memiliki overhead dibandingkan dengan server node lurus.

Connect dan Express keduanya sangat berguna. Saya juga telah bekerja dengan Everyauth dan menurut saya ini jauh lebih mudah daripada menyiapkan semua implementasi OAuth Anda secara terpisah (yang telah saya lakukan).

Berikut ini beberapa tautan:

http://howtonode.org/connect-it

http://tjholowaychuk.com/post/664516126/connect-middleware-for-nodejs

Panduan Ekspres: http://expressjs.com/guide.html

dan pertanyaan tumpukan serupa, namun bukan duplikat: Apa itu Node.js ' Hubungkan, Ekspres, dan middleware?

person Chris Biscardi    schedule 14.11.2011
comment
Terima kasih atas tanggapan ini, Chris. Dalam hal ini, supaya saya memastikan saya memahami cara kerjanya, pada dasarnya saya dapat mengganti modul http dengan modul connect dan kode saya harus bekerja sama? Lalu tinggal menambahkan lebih banyak modul sebelum masuk ke kode saya untuk menambahkan lebih banyak fungsi? Jika itu masalahnya, maka saya merasa konyol karena belum menggunakannya. - person thisissami; 14.11.2011
comment
Ya, Anda tidak mengganti modul http, koneksi memperluas server http, tapi ya, Anda akan mengganti kode http Anda dengan kode koneksi dan itu hanya menambahkan beberapa fungsi tambahan. - person Chris Biscardi; 15.11.2011
comment
@thisissami Ya, benar. Daripada memanggil http.createServer(...), Anda memanggil connect.createServer(). Objek yang dikembalikan dari connect.createServer() berfungsi sama dengan objek yang dikembalikan dari modul http, namun juga memiliki fungsi use() tambahan yang menerapkan middleware ke setiap permintaan masuk. - person Jared Hanson; 15.11.2011
comment
haha transisinya sangat sederhana. baru saja mengubah 3 contoh http saya yang berbeda untuk terhubung dan menambahkan panggilan balik berikutnya ke server. - person thisissami; 15.11.2011

Tanpa mengetahui detail implementasi aplikasi Anda, dan apa fungsinya, sulit untuk memberikan penilaian yang akurat tentang manfaat yang akan diberikan Connect ke aplikasi Anda, serta seberapa sulit melakukan transisi.

Karena itu, saya sangat merekomendasikan penggunaan kombo Connect/Express saat mengembangkan aplikasi. Terdapat ekosistem middleware yang sehat yang berkembang di sekitar Connect, yang membuatnya sangat mudah untuk memasukkan modul yang diperlukan ke dalam aplikasi, seperti logging, kompresi, dan otentikasi. Seiring dengan semakin matangnya aplikasi Anda dan semakin banyak fitur yang diimplementasikan, memiliki arsitektur yang fleksibel akan memungkinkannya berkembang dengan lebih lancar.

Sejak Anda mengevaluasi kerangka autentikasi, saya juga akan menyebutkan bahwa saya adalah pengembang Passport, yang merupakan alternatif untuk everyauth yang bertujuan untuk menjadi lebih modular dan tidak mengganggu. Paspor juga dibangun di atas Connect. Namun, ini ditulis agar dapat diperluas sesuai dengan konteks pengoperasiannya (Connect secara default), sehingga harus memungkinkan untuk beradaptasi dengan kerangka kerja lain, bahkan yang dibuat sendiri.

person Jared Hanson    schedule 14.11.2011