Является ли Node.js хорошей альтернативой для создания законченных сайтов? - PullRequest
20 голосов
/ 19 июня 2011

Мне интересно, является ли использование Node.js (express.js) лучшим вариантом для создания полноценного веб-сайта.Я использую Rails + Node.js и мне интересно, если это по-прежнему лучший вариант или я должен полностью перейти на Node.js.

Существуют ли веб-сайты, полностью созданные с помощью node.js?Я полагаю, что ему не хватает многих вещей, которые предлагает Rails.

Ответы [ 4 ]

27 голосов
/ 21 июня 2011

Я полагаю, что у него не хватает многих вещей, которые предлагает Rails.

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


Модули

node.js становится довольно полным, и я думаю, что вы можете запустить весь свой сайт, используя только node.js, используя, например,следующие модули.Я полагаю, вы знаете о npm.Если нет, то я действительно советую вам зайти в Google и узнать это.Для поиска npm вы можете использовать http://search.npmjs.org:

веб-фреймворк:

  1. Высокопроизводительная, высококлассная веб-разработка для Node.js
    https://github.com/visionmedia/express

  2. Socket.IO стремится сделать приложения реального времени возможными в любом браузере и мобильном устройстве, стирая различия между различными транспортными механизмами.https://github.com/learnboost/socket.io-node

Я считаю, что с помощью этих двух веб-фреймворков вы можете создавать множество сайтов.Например, express - это очень мощный веб-фреймворк, который поддерживает множество интересных вещей, таких как:

только некоторые из них.

база данных:

  1. Redis - это расширенное хранилище значений ключей с открытым исходным кодом.Он часто упоминается как сервер структуры данных, поскольку ключи могут содержать строки, хэши, списки, наборы и отсортированные наборы.
    https://github.com/mranney/node_redis

  2. MongoDB (из "огромного") является масштабируемым, высокопроизводительная, с открытым исходным кодом, документно-ориентированная база данных.Mongoose - это инструмент для моделирования объектов MongoDB, разработанный для работы в асинхронной среде.
    https://github.com/learnboost/mongoose/

С этими двумя базами данных я думаю, что вы сможете выполнять большинство ваших задач.Приятно то, что Redis является чрезвычайно быстрым / простым расширенным KV-хранилищем (набор данных в памяти / также поддерживает VM) и поддерживает репликацию, в то время как Mongodb более полон (медленнее, чем redis) и также поддерживает sharding.

аутентификация:

  1. Аутентификация и авторизация (пароль, facebook и другие) для вашего узла node.js Connect и Express.
    https://github.com/bnoguchi/everyauth

Как я уже говорил ранее, вы можете проделать длинный путь только с этими модулями.

15 голосов
/ 20 июня 2011

Express.js больше похож на Синатру. Они более простые рамки, чем рельсы.

Экспресс список сайтов довольно мал http://expressjs.com/applications.html

Так что я думаю, что это также хорошо, чтобы посмотреть список Синатры http://www.sinatrarb.com/wild.html

Итак, чтобы ответить на ваши вопросы в обратном порядке. Да, в нем отсутствуют все особенности рельсов. Да, есть сайты, написанные полностью на Express. И переход на 100% Node.js может быть правильным решением для вашего сайта.

Это зависит от того, какие функции вы пропустите и какая производительность вам нужна.

8 голосов
/ 19 июня 2011

Я не уверен, но, думаю, это вполне возможно.Я годами создавал полные сайты, используя простой серверный javascript без проблем.Преимущество node.js заключается в его управляемой событиями модели и таких вещах, как socket.io.Я только начал экспериментировать с ним, я, вероятно, попробую портировать существующий сайт на node.js.

Здесь вы можете найти большой список сайтов, созданных с помощью node.js.

Наконец, вы можете прочитать: Каково это - создать настоящий сайт в Node.js

2 голосов
/ 17 июля 2011

Да, на данный момент node.js не хватает многих (ну, по крайней мере, нескольких) вещей, которые предлагает rails.В конечном итоге набор доступных модулей node.js вместе предоставит хорошие альтернативы RoR по всем направлениям.Или, по крайней мере, разные (и часто более современные) подходы к одним и тем же фундаментальным проблемам.В экосистеме node.js все еще отсутствуют некоторые важные вещи, включая хороший ORM для postgresql (у rails есть ActiveRecord, что замечательно) и хорошую подсистему управления схемами БД.Оба они не существуют в экосистеме node.js на данный момент, но, безусловно, они будут там в свое время.У Rails сейчас есть эти проблемы.

Есть некоторые хитрости, которые есть у node.js, которых нет у RoR.Отладка в node.js более удобна, чем RoR, а express.js более гибка.Express - это библиотечный подход (вы говорите ему, что делать), тогда как rails - это базовый подход (вы заполняете шаблон, который он создает для вас).Есть также некоторые фантастические вещи, такие как стилус и нефрит, которые имеют эквиваленты в рельсах, но когда у вас есть полное приложение, написанное на одном языке (или javascript, или CoffeeScript, который я предпочитаю), и все это в современном node.js / TJ Holowaychuckстиль, вы получаете уровень связности, с которым действительно приятно работать.

Еще одна вещь, которую нужно иметь в виду, это то, что хотя список доступных модулей node.js впечатляет, многие из них не так хороши.зрелые и проверенные в бою как их рельсы / аналоги django.Это удар или мисс, так что будьте осторожны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...