Подтвердить что ты не робот

Является ли Node.js хорошей альтернативой для создания полных веб-сайтов?

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

Есть ли веб-сайты, созданные полностью с помощью Node.js? Я предполагаю, что это не должно быть многого, что предлагает Rails.

4b9b3361

Ответ 1

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

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

Поэтому я считаю, что также хорошо смотреть список Sinatra http://www.sinatrarb.com/wild.html

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

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

Ответ 2

Я предполагаю, что этого не должно быть много чего Rails предлагает.

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


Модули

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

веб-каркас:

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

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

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

  • session.
  • много мощных шаблонных движков. Например, мне нравится Джейд. Вы также можете делиться ими между клиентом и сервером много раз.
  • отлично routing.

чтобы назвать несколько.

База данных:

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

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

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

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

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

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

Ответ 3

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

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

Наконец, вы можете прочитать: Как это похоже на создание реального веб-сайта в node.js

Ответ 4

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

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

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