Я много читал о Nodejs и его фреймворках и недавно закончил свой первый полный интерфейс javascript (с использованием Angularjs).
Я решил, что моим следующим любимым проектом будет приключение Nodejs с использованием одного из этих двух фреймворков:
Я читал об обоих, но до сих пор не могу понять их различия и почему я должен использовать один вместо другого. Так что, пожалуйста, наденьте свою шляпу лучшего продавца, выберите рамку и продайте ее мне.
Некоторые функции, которые мне нужны для моего любимого проекта:
- Текущие результаты
- Reddit-подобные темы, в реальном времени
- Версия страницы, подобная Википедии
- Пользователи / роли
javascript
node.js
model-view-controller
meteor
sails.js
Pedropeixoto
источник
источник
Ответы:
Я не могу говорить от имени Meteor, но могу помочь рассказать немного о Sails, потому что я его создал.
tldr; Паруса - не панацея от всех проблем Интернета, но я считаю, что Node.js. Цель Sails - предоставить практическую основу для разработки полных, масштабируемых, запускаемых и удобных для предприятий приложений, построенных на node.js. Я начал Balderdash с вопроса «Можно ли использовать Node.js для всего?». Паруса - вот ответ.
Из наших новых документов :
Пару лет назад я взял на себя обязательство использовать Node.js для всего - это была любовь с первого взгляда . Я создал Sails на основе Express и Socket.io, потому что они были (и остаются) наиболее хорошо зарекомендовавшими себя модулями Node для своих соответствующих случаев использования. Код обработки запросов в Sails является Express-совместимым с дополнительным преимуществом неявной поддержки Socket.io.
Sails спроектирован так, чтобы быть совместимым с любой стратегией, которую вы используете для создания вашего интерфейса (ов) на Angular, Backbone, iOS / ObjC, Android / Java, или даже просто предлагая необработанный API для использования другим веб-сервисом или вашим Сообщество разработчиков. Если вы в конечном итоге измените свой подход (например, переключитесь с Backbone на Angular) или полностью создадите новый интерфейс (например, создадите собственное приложение для Windows Phone), ваше приложение Sails все равно будет работать. Как вы, возможно, уже знаете, некоторые люди называют этот подход сервис-ориентированной архитектурой или SOA (у Джо Макканна есть отличная колода по этому вопросу).
В том же духе Sails поддерживает другие знакомые соглашения для создания веб-серверов - стандартную структуру MVC, возможность создавать чистые API-интерфейсы и основные модули, которые являются открытыми, настраиваемыми, расширяемыми и даже заменяемыми. Это означает, что Sails можно настроить в соответствии с потребностями пользователей, насколько это необходимо.
В 2013 году этот фреймворк стал популярнее, и наш консалтинговый бизнес вырос. Остальные основные специалисты по сопровождению и я расширили наше внимание, сделав бэкэнд-разработку как можно более быстрой и простой. Связанные с ним аспекты Sails, такие как хуки (плагины), тестирование и документация, за последний год прошли долгий путь благодаря усилиям как нашей основной команды, так и (постоянно расширяющегося) сообщества Sails в целом. Есть множество элементов дорожной карты, над которыми мы все еще работаем, но я считаю, что Sails - лучший вариант для стабильной, поддерживаемой разработки MVC на Node сегодня. Остальная часть команды и я привержены его постоянному обслуживанию и развитию функций, и, поскольку мы используем его для всех наших клиентских проектов, он никуда не денется.
Я безоговорочно привержен тому, чтобы сделать Sails лучшим веб-фреймворком, но никогда не за счет Node.js. Основная команда и я без устали преданы совершенствованию экосистемы Node, а это означает принятие NPM, использование существующих технологий Node и лучших практик и т. Д. Не только потому, что это имеет больше смысла, но потому, что мы разработчики Node.js. Мотивация всех наших усилий - сделать Node более доступным, а не вытеснить его. Итак, если бы в какой-то странной параллельной вселенной мне дали фаустовский выбор между преобразованием Sails на какой-то другой язык или полным отказом от Sails, но все еще способным использовать Node, я бы выбрал последнее.
Дополнительные ресурсы:
FAQ | Паруса 101 | Оригинальный скринкаст | Руководство по вкладу | Переполнение стека
Группа Google | Дорожная карта | IRC: #sailsjs на Freenode | Статус сборки
источник
Я создал пару проектов с Meteor и еще не работал с Sails. Так что мое мнение будет определенно необъективным, надеюсь, оно в любом случае будет полезным.
Создание интерфейса
Meteor предоставляет собственный интерфейсный фреймворк под названием Blaze, который будет включен в грядущий выпуск 0.8. Meteor заботится о привязке данных из ваших коллекций к вашим представлениям. Из-за этого вам не нужно беспокоиться о том, чтобы сообщить своим представлениям об обновлении, они просто делают это.
С другой стороны, Sails предоставляет только бэкэнд-фреймворк, и вам придется принести свой собственный интерфейсный фреймворк.
В отличие от большинства фреймворков Node.js, Meteor работает синхронно.
Meteor работает в цикле, и если вы хотите использовать пакеты Node.js, вам придется проделать дополнительную работу, чтобы убедиться, что они правильно работают в Meteor.
Кажется, что Sails - это простой фреймворк MVC Node.js, поэтому не должно быть ничего удивительного, когда вы в него заглядываете.
Вы должны использовать MongoDB с Meteor
Да, вы можете использовать другие базы данных с Meteor, но у них нет такой же поддержки, как у MongoDB. В то время как с Sails, похоже, у них есть ORM для пары баз данных.
Спектакль
Для крупномасштабных приложений Meteor может не работать хорошо . Для решения этой проблемы проводится большая работа, и к концу 2014 года мы можем ожидать появления масштабируемых решений для Meteor.
Стабильность
Meteor все еще очень свежий и еще не достиг 1.0. Вы должны ожидать, что в следующие пару выпусков будут внесены некоторые изменения, которые нарушат обратную совместимость. Если вы начинаете работать с ним как можно скорее, вы можете рассмотреть возможность использования ветки 0.8-rc0. При этом некоторые функции в конвейере действительно великолепны и сделают версию 1.0 очень привлекательной.
Последние мысли?
Мне нравится Meteor из-за его особенностей. Вам нужно будет изучить способ действия Meteor, но как только вы начнете это делать, вы почувствуете, что выпили kool-aid. Из-за способа привязки данных к просмотрам линии между сервером и клиентом не далеки. Meteor представляет собой сдвиг парадигмы в архитектуре приложений, и если вы еще не пробовали его, я бы порекомендовал его.
PS Ознакомьтесь с дорожной картой, чтобы почувствовать, что будет дальше.
источник
npm
пакетов с метеором: meteorhacks.com/complete-npm-integration-for-meteor.htmlЯ могу высказать свое мнение только о парусах. Я чрезвычайно опытный разработчик Javascript и с 90-х создавал приложения для встроенных телевизионных приставок, основанные на Javascript.
Вещи, которые сработали действительно хорошо - Начало работы было отличным, и я чувствовал большую поддержку в опубликованных материалах - Кривая обучения была очень короткой, и за парусами стоит здоровое сообщество - После начального обучения очень легко быстро проявить творческий подход
Вещи, которые можно улучшить - сложные структуры данных сложно реализовать - интеграция Passport.js была болезненной из-за отсутствия чистых справочных материалов
Рекомендации - у Ponzi coder есть отличное руководство, и оно действительно помогло мне начать работу https://www.youtube.com/user/ponzicoder - Дополнительные сведения об экспрессе и ватерлинии помогут вам, когда вы попытаетесь решить более сложные задачи с данными
В целом я бы рекомендовал паруса.
источник
passport.use('local-login', new LocalStrategy({ usernameField : 'email', passwordField : 'password', passReqToCallback : true // allows us to pass in the req from our route (lets us check if a user is logged in or not) },
В настоящее время я использую Meteor и не использовал Sails.js.
С Meteor было очень приятно работать, и я думаю, что это будет отличный выбор для веб-приложений в реальном времени. Что касается пользователей / ролей, вы можете проверить интегрированный пакет учетных записей , а также выполнить поиск в атмосфере для пакетов ролей / разрешений, внесенных сообществом.
В конце концов, я бы рекомендовал попробовать небольшой проект с обеими технологиями и посмотреть, какая из них вам больше нравится.
источник