node.js проти meteor.js в чому різниця? [зачинено]


88

Тож я багато слухав / читав про meteor.js. Підручники роблять це здається дуже спортивним як фреймворк, але я все ще трохи новачок, коли справа стосується веб-програмування.

Протягом останніх півтора місяців я намагався по-справжньому вивчити node.js і з’ясувати, як це все поєднується. Мені подобається, наскільки швидко і легко запускатись і працювати, а також спільнота, яка разом з цим (що ілюструється вражаючою кількістю фреймворків, які ви можете отримати для Node).

А як же метеор? Які реальні переваги цього, і в чому різниця? Хтось починав як користувач node.js і `` перетворював '', чи все-таки це більше цікавий новий фреймворк?

Відповіді:


159

Слабка аналогія така: "Метеор - Вузол, як Рейли - Рубі". Це великий, самовпевнений фреймворк, який використовує Node на сервері. Сам Node - це просто низькорівнева структура, що забезпечує функції надсилання та отримання запитів HTTP та виконання інших операцій вводу-виводу.

Meteor радикально амбіційний: за замовчуванням кожна сторінка, яку він обслуговує, насправді є шаблоном Handlebars, який синхронізується із сервером. Спробуйте приклад таблиці лідерів : Ви створюєте шаблон, у якому просто написано «Перерахувати імена та оцінки», і кожен раз, коли будь-який клієнт змінює ім’я чи оцінку, сторінка оновлюється новими даними - не лише для цього клієнта, але й для всіх, сторінки.

Ще одна відмінність: Хоча сам Node стабільний і широко використовується у виробництві, Meteor знаходиться у стані "попереднього перегляду". Є серйозні помилки, і певні речі, які не відповідають концептуальній моделі, орієнтованій на дані Метеора (наприклад, анімація), дуже важко зробити.

Якщо ви любите грати з новими технологіями, розкрутіть Meteor. Якщо ви хочете більш традиційний, стабільний веб-фреймворк, побудований на Node, погляньте на Express .


2
Чи покращив Meteor свої "серйозні помилки" з минулого року?
danorton

3
@danorton Так, я точно сказав би. Для певних додатків Meteor зараз цілком життєздатний, а також абсолютне задоволення для розвитку.
Тревор Бернем

4
Також зауважте, що ця відповідь з часом буде не зовсім точною, оскільки Meteor перебуває в активному розробці та отримав значні фінансові внески, що пришвидшує час розробки, сподіваючись, виводячи його зі стадії "попереднього перегляду".
Годдард

12

Meteor - це фреймворк, побудований поверх node.js. Він використовує node.js для розгортання, але має кілька відмінностей.

Ключовим є те, що він використовує власну пакувальну систему замість модульної системи, що базується на вузлі. Це полегшує створення веб-додатків за допомогою Node. Вузол може використовуватися для різноманітних речей, і сам по собі страшно обслуговувати динамічний веб-контент. Бібліотеки Метеора роблять все це простим.


4
версія 0.6.0 тепер має пряму підтримку модулів NPM meteor.com/blog/2013/04/04/…
Макс Ходжес

9

Сила Meteor полягає у функції оновлення в режимі реального часу, яка добре працює для деяких соціальних додатків, які ви бачите сьогодні, де ви бачите оновлення кожного, над чим ви працюєте. Ці оновлення зосереджуються на реплікації підмножин колекції MongoDB під обкладинками як оновлення бази даних локального міні-монго (їх підмножина MongoDB на стороні клієнта) у вашому веб-браузері (що призводить до запуску декількох подій візуалізації на ваших шаблонах). Остання частина про багаторазові оновлення візуалізації також є слабкою стороною. Якщо ви хочете, щоб ваш інтерфейс контролював, коли інтерфейс оновлюється (наприклад, класичні сторінки jQuery AJAX, де ви завантажуєте HTML, і ви контролюєте всі виклики AJAX та оновлення інтерфейсу), ви будете боротися з цим механізмом.

Meteor використовує гарний стек плагінів Node.js (Handlebars.js, Spark.js, Bootstrap css тощо, але використовуючи власний механізм упаковки замість npm) внизу вздовж w / MongoDB для шару зберігання, який вам не потрібно подумай про. Але іноді ви теж стикаєтесь із цим ... наприклад, якщо ви хочете налаштувати тему Bootstrap, вона зіпсує послідовність завантаження файла responsive.css Bootstrap, тому він більше не реагує (але це, мабуть, виправиться, коли Bootstrap 3.0 виходить незабаром).

Отож, як і всі «фреймворки повного стеку», речі працюють чудово, доки ваш додаток відповідає задуманому. Як тільки ви вийдете за рамки цієї межі і розсунете границі меж, ви можете в кінцевому підсумку боротися з рамками ...


2
Meteor V0.6.0 + має інтеграцію npm: meteor.com/blog/2013/04/04/…
Manav Kataria
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.