Node.js против meteor.js какая разница?

Итак, я много слышал/читал о meteor.js. Учебники делают его очень спортивным как фреймворк, но я все еще немного начинаю, когда дело доходит до веб-программирования.

Я пытаюсь в течение последних месяцев и половины изучать node.js и выяснять, как все это объединяется. Мне нравится, как быстро и легко вставать и запускаться, и сообщество, которое приходит вместе с ним (что иллюстрируется размытым количеством кадров, которые вы можете получить для Node).

Но как насчет метеор? Каковы его реальные преимущества и какая разница? Кто-нибудь начинал как пользователь node.js и "преобразовывал", или это еще более любопытная новая структура?

Ответ 1

Простая аналогия: "Метеор - Node, поскольку Rails - это Ruby". Это большая, упрямая структура, которая использует Node на сервере. Node сам по себе является лишь низкоуровневой структурой, предоставляющей функции для отправки и приема HTTP-запросов и выполнения других операций ввода-вывода.

Метеор радикально амбициозен: по умолчанию каждая страница, которую он обслуживает, фактически является Handlebars шаблоном, который хранится в синхронизации с сервером. Попробуйте Пример лидера: вы создаете шаблон, который просто говорит "Перечислите имена и оценки", и каждый раз, когда какой-либо клиент изменяет имя или оценку, страница обновляется с помощью новые данные - не только для этого клиента, но и для всех, просматривающих страницу.

Другое отличие: хотя Node сам стабилен и широко используется в производстве, Meteor находится в состоянии "предварительного просмотра". Существуют серьезные ошибки, и некоторые вещи, которые не соответствуют концептуальной модели, ориентированной на данные Meteor (например, анимация), очень трудно сделать.

Если вы любите играть с новыми технологиями, дайте Метерону вращаться. Если вам нужна более традиционная, стабильная веб-структура, построенная на Node, посмотрите Express.

Ответ 2

Метеор - это встроенная фреймворк node.js. Он использует node.js для развертывания, но имеет несколько отличий.

Ключевым моментом является использование собственной системы упаковки вместо node системы на основе модулей. Это упрощает создание веб-приложений с помощью node. node может использоваться для множества вещей и сам по себе ужасен при обслуживании динамического веб-контента. Библиотеки Meteor все это упрощают.

Ответ 3

Сила Meteor - это функция обновления в режиме реального времени, которая хорошо работает для некоторых социальных приложений, которые вы видите в настоящее время, где вы видите, как все обновляются для того, над чем вы работаете. Эти обновления сосредотачиваются вокруг репликации подмножеств коллекции MongoDB под обложками, поскольку локальные мини-монго (их подсистемы MongoDB на клиентской стороне) обновляются в вашем веб-браузере (что приводит к запуску нескольких событий визуализации на ваших шаблонах). Последняя часть о нескольких обновлениях рендеринга также является слабостью. Если вы хотите, чтобы ваш пользовательский интерфейс контролировался при обновлении пользовательского интерфейса (например, на классических страницах jQuery AJAX, где вы загружаете HTML-код, и вы контролируете все вызовы AJAX и обновления пользовательского интерфейса), вы будете бороться с этим механизмом.

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

Как и все "полные фреймворки стека", все отлично работает, пока ваше приложение соответствует тому, что предназначено. Как только вы выйдете за пределы этого объема и нажмете границы границ, вы можете закончить борьбу с каркасом...