Node.js Экспресс против Флэтайрон
Сродни этому вопросу: "Я ищу плюсы и минусы каждого фреймворка и почему один особенно полезен по сравнению с другим" (но в основном то, что предлагает Flatiron, из-за того, что Express уже достаточно подробно описан в этом. вопрос).
Судя по моему небольшому опыту работы с Express, он охватывает примерно то, что вам нужно, и не более того. Флатирон, кажется, делает это, но гораздо более минималистично. Если вы проверите их веб-сайт, вы увидите, что они предлагают около 5-7 основных функций по сравнению со многими другими, включенными в Express.
Наконец, что представляется наиболее перспективным для хорошо масштабируемых веб-приложений, и почему я должен использовать ту или иную инфраструктуру, а не использовать инфраструктуру вообще?
3 ответа
Некоторое обновление через полтора года после того, как был задан этот вопрос:
Первое отличие, которое приходит на ум при сравнении Express и Flatiron, заключается в том, что Express является серверной средой, в то время как Flatiron объявлен изоморфным, охватывающим как серверную, так и клиентскую части, и поэтому должен подходить для разработки традиционной серверной части. приложения, одностраничное приложение на стороне клиента и все, что между ними (как, например, Derby или Meteor). Однако мне не удалось найти каких-либо примеров использования Flatiron на стороне клиента, и не из-за отсутствия попыток.
На GitHub существует проблема с предоставлением простого примера приложения TODO, которое было открыто более двух лет, и (насколько я понимаю, читая комментарии там), вы не можете создать клиентское приложение, используя только Flatiron, без добавления таких вещей, как jQuery, Backbone. и т. д. потому что клиентский аспект Flatiron еще не готов ("Мы работаем над этим. У нас еще есть несколько шагов, чтобы сделать его полностью изоморфным".), что кажется реальной проблемой для каркас, который пытался быть изоморфным с самого начала. (См. Также связанную проблему TodoMVC: пример добавления FlatIron).
Вывод таков, что Флэтайрон еще не готов. Когда он будет готов, он может охватить гораздо больше областей веб-разработки, чем Express, но на самом деле трудно сказать, когда это может произойти, если простой пример приложения TODO не мог быть представлен годами.
Между тем, существует множество фреймворков Node, и их очень сложно отследить, поэтому я бы порекомендовал сделать это сейчас и в будущем, чтобы увидеть список веб-фреймворков на вики-сайте Joyent/Node на GitHub и сравнить их с клиентские фреймворки в проекте TodoMVC, где эти оба списка пересекаются, будут фреймворками, охватывающими как сервер, так и клиент, и способными написать в них простое приложение TODO, которое, надеюсь, однажды будет включать Flatiron.
Я считаю, что экспресс минимален, а флатирон кажется более полным / сложным. Лучшее для масштабирования - сложный вопрос, потому что оба ничего не делают для увеличения масштабируемости вашего приложения. Они облегчают разработку приложения, предоставляя простые способы, например, exmpl для добавления маршрутов (вместо того, чтобы вы сходили с ума от собственного неисправного регулярного выражения).
Лично я полюбил все маленькое промежуточное ПО connect и express, а также dynamicHelpers(для шаблонов), которое, похоже, не поддерживается flatiron (да, у них есть промежуточное ПО, но, похоже, вы не могли бы используйте те из connect. EDIT, как выясняется, Union, который является обработчиком промежуточного программного обеспечения flatirons, совместим для подключения, так что вы можете использовать промежуточное программное обеспечение connect).
Я бы порекомендовал кому-то использовать экспресс поверх флатирона, но опять же; Я хотел бы быть лучше.
Мне кажется, что битва Экспресс против Флэтайрона явно выиграна Экспрессом.
Нет активной разработки для платформы Flatiron ATM.
Смотрите репозиторий GitHub: https://github.com/flatiron/flatiron. Последний выпуск 0.4.2 от 16 сентября 2014 года.
Официальный сайт Flatiron http://flatironjs.org/ не работает.