node.js vs. meteor.js apa bedanya? [Tutup]

88

Jadi saya telah mendengar / membaca banyak tentang meteor.js. Tutorial membuatnya tampak sangat sporty sebagai kerangka kerja, tetapi saya masih sedikit pemula dalam hal pemrograman web.

Saya telah mencoba selama satu setengah bulan terakhir untuk benar-benar mempelajari node.js dan mencari tahu bagaimana semuanya bersatu. Saya suka betapa cepat dan mudahnya untuk memulai dan menjalankannya, dan komunitas yang menyertainya (yang dicontohkan oleh banyaknya kerangka kerja yang bisa Anda dapatkan untuk Node).

Tapi bagaimana dengan meteor? Apa keuntungan sebenarnya dari itu, dan apa bedanya? Adakah yang memulai sebagai pengguna node.js dan 'dikonversi' atau masihkah kerangka kerja baru yang menarik?

ZacAttack
sumber

Jawaban:

159

Sebuah analogi longgar adalah, "Meteor adalah Node seperti Rails ke Ruby." Ini adalah kerangka kerja besar dan beropini yang menggunakan Node di server. Node sendiri hanyalah kerangka kerja tingkat rendah yang menyediakan fungsi untuk mengirim dan menerima permintaan HTTP dan melakukan I / O lainnya.

Meteor sangat ambisius: Secara default, setiap halaman yang dilayaninya sebenarnya adalah template Handlebars yang tetap sinkron dengan server. Coba contoh Papan Peringkat : Anda membuat template yang hanya bertuliskan "Cantumkan nama dan skor," dan setiap kali klien mengubah nama atau skor, halaman diperbarui dengan data baru — tidak hanya untuk klien itu, tetapi untuk semua orang yang melihat halaman.

Perbedaan lainnya: Meskipun Node sendiri stabil dan banyak digunakan dalam produksi, Meteor berada dalam status "pratinjau". Ada bug yang serius, dan hal-hal tertentu yang tidak sesuai dengan model konseptual data-sentris Meteor (seperti animasi) sangat sulit dilakukan.

Jika Anda suka bermain dengan teknologi baru, coba Meteor. Jika Anda menginginkan kerangka kerja web yang lebih tradisional dan stabil yang dibangun di atas Node, lihat Express .

Trevor Burnham
sumber
2
Apakah Meteor telah memperbaiki "bug serius" nya sejak tahun lalu?
danorton
3
@danorton Ya, saya pasti akan mengatakannya. Untuk aplikasi tertentu, Meteor sekarang cukup layak, serta sangat menyenangkan untuk dikembangkan.
Trevor Burnham
4
Perhatikan juga bahwa jawaban ini pada akhirnya tidak akan sepenuhnya akurat karena Meteor sedang dalam pengembangan aktif dan telah mendapatkan kontribusi finansial yang cukup besar yang mempercepat waktu pengembangan, semoga dapat membawanya keluar dari tahap "pratinjau".
Goddard
12

Meteor adalah kerangka kerja yang dibangun di atas node.js. Ini menggunakan node.js untuk menyebarkan tetapi memiliki beberapa perbedaan.

Kuncinya adalah ia menggunakan sistem pengemasannya sendiri, bukan sistem berbasis modul node. Ini memudahkan pembuatan aplikasi web menggunakan Node. Node dapat digunakan untuk berbagai hal dan sangat buruk dalam menyajikan konten web dinamis. Perpustakaan Meteor membuat semua ini mudah.

Akshat
sumber
4
versi 0.6.0 sekarang memiliki dukungan langsung untuk modul NPM meteor.com/blog/2013/04/04/…
Max Hodges
9

Kekuatan Meteor ada pada fitur pembaruan waktu nyata yang berfungsi dengan baik untuk beberapa aplikasi sosial yang Anda lihat saat ini di mana Anda melihat pembaruan semua orang untuk apa yang sedang Anda kerjakan. Pembaruan ini berpusat di sekitar replikasi subset dari koleksi MongoDB di bawah sampul sebagai pembaruan basis data mini-mongo lokal (subset MongoDB sisi klien mereka) di browser web Anda (yang menyebabkan beberapa peristiwa render dijalankan pada templat Anda). Bagian terakhir tentang beberapa pembaruan render juga merupakan kelemahannya. Jika Anda ingin UI Anda mengontrol kapan UI menyegarkan (mis., Halaman jQuery AJAX klasik di mana Anda memuat HTML dan Anda mengontrol semua panggilan AJAX dan pembaruan UI), Anda akan melawan mekanisme ini.

Meteor menggunakan tumpukan plugin Node.js yang bagus (Handlebars.js, Spark.js, Bootstrap css, dll. Tetapi menggunakan mekanisme pengemasannya sendiri, bukan npm) di bawahnya bersama w / MongoDB untuk lapisan penyimpanan yang tidak Anda perlukan. memikirkan tentang. Tetapi terkadang Anda akhirnya juga memperjuangkannya ... misalnya, jika Anda ingin menyesuaikan tema Bootstrap, itu mengacaukan urutan pemuatan file responsive.css Bootstrap sehingga tidak lagi responsif (tetapi ini mungkin akan memperbaiki dirinya sendiri saat Bootstrap. 3.0 segera dirilis).

Jadi seperti semua "kerangka kerja tumpukan penuh", semuanya bekerja dengan baik selama aplikasi Anda sesuai dengan yang diinginkan. Setelah Anda melampaui cakupan itu dan mendorong batas tepi, Anda mungkin akan melawan kerangka kerja ...

kenyee
sumber
2
Meteor V0.6.0 + memiliki integrasi npm
Manav Kataria