Является ли Node.js хорошей альтернативой для создания полных веб-сайтов?
Мне интересно, лучше ли использовать Node.js(express.js) для полного веб-сайта. Я использовал Rails + Node.js и задаюсь вопросом, является ли это по-прежнему наилучшим вариантом, или если я должен полностью перейти на Node.js.
Есть ли веб-сайты, созданные полностью с помощью Node.js? Я предполагаю, что это не должно быть многого, что предлагает Rails.
Ответы
Ответ 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:
веб-каркас:
Я считаю, что с этими двумя веб-фреймами вы можете создавать множество сайтов. Например, экспресс является очень мощным веб-фреймворком и поддерживает множество интересных вещей, таких как:
чтобы назвать несколько.
База данных:
-
Redis - это открытый источник, продвинутый хранилище ключей. Его часто называют как сервер структуры данных с ключи могут содержать строки, хэши, списки, наборы и сортированные наборы.
https://github.com/mranney/node_redis
-
MongoDB (от "humongous" ) - это масштабируемый, высокопроизводительный, с открытым исходным кодом, документарно-ориентированная база данных. Mongoose - инструмент моделирования объектов MongoDB, предназначенный для работы в асинхронная среда.
https://github.com/learnboost/mongoose/
С этими двумя базами данных я думаю, что вы сможете выполнить большинство своих задач. Самое приятное, что Redis - это чрезвычайно быстрый/простой расширенный KV-store (набор данных в памяти/поддерживает VM) и поддерживает репликацию, в то время как Mongodb более полно (медленнее, чем redis), а также поддерживает очертание.
аутентификации:
Как я уже говорил, вы можете пройти долгий путь только с этими модулями.
Ответ 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. Он попал или промахнулся, поэтому будьте осторожны.