Весь сайт с node.js и mongodb? - PullRequest
30 голосов
/ 06 мая 2011

Я создал несколько сайтов, используя PHP и mySQL в качестве бэкэнда, и считаю, что я довольно хорошо знаком с обоими.Однако во время исследования моего нового веб-сайта я столкнулся с node.js и mongodb (и socket.io, так как на сайте будет чат).

Я решил использовать node.js и mongodbзапустить чат - но не знаю, должен ли я просто сделать весь сайт с этими двумя вещами?Так как я все равно собираюсь запустить сервер узлов, я должен просто запустить другой (отдельный) хостинг сайта?Или это плохая идея?- это стабильно?Я мог бы программировать на PHP и все еще использовать mongodb - но разве ноды не были бы намного быстрее?

И еще один вопрос: я планировал использовать ajax для обработки всех сообщений на странице - но так какЯ уже использую socket.io для чата. Должен ли я выполнять все мои почтовые запросы, используя это?Для ajax я планировал использовать jQuery (также для всех эффектов внешнего интерфейса).

Ответы [ 4 ]

15 голосов
/ 06 мая 2011

не знаю, должен ли я просто сделать весь сайт с этими двумя вещами?

Если вы хотите выучить node.js, то нет ничего лучше, чем его кодировать.

Так как я собираюсь запустить сервер узлов в любом случае я должен просто запустить другой (отдельно) один хостинг сайта?

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

стабильно ли?

Даже версии node.js являются стабильными выпусками, однако до тех пор, пока не выйдет 1.0 с зависанием функции, в его API могут быть серьезные изменения.

Я мог бы программировать на PHP и по-прежнему использовать mongodb - но не будет узел будет намного быстрее?

Скорее всего (и определенно).

Я планировал использовать ajax для обработки всех сообщения на страницу - но так как я уже используя socket.io в чате - я должен сделать все мои почтовые запросы, используя что?

Я бы порекомендовал придерживаться модели MVC и использовать экспресс, так как вы можете столкнуться с большими трудоемкими проблемами, если будете использовать socket.io для классических вещей. Socket.io предназначен именно для работы в реальном времени и связанных с этим вещей.

12 голосов
/ 06 мая 2011

Уже есть несколько надежных веб-фреймворков для node.js, в частности, проверьте Express .Вот действительно хорошая статья, в которой излагаются некоторые уроки и опыт создания веб-сайта node.js:

Каково это создавать настоящий веб-сайт в Node.js

Что касается вашего второговопрос, вероятно, все еще лучше использовать обработчики AJAX и HTTP с jQuery.Я не уверен, что jQuery поддерживает обратные вызовы через необработанные сокеты TCP.

9 голосов
/ 06 мая 2011

node.js + экспресс + нефрит + стилус + jQuery - это мое предпочтительное окружение.

Использование навсегда для автоматического перезапуска сервера. У меня никогда не возникало проблем с работоспособностью, даже если у меня регулярно возникают ошибки, приводящие к сбою сервера.

Что касается socket.io + jQuery , они прекрасно ладят, но это не так естественно, как express + jQuery комбо. Я придерживаюсь вызовов ajax для большинства вещей.

3 голосов
/ 06 мая 2011

Node.JS все еще может быть немного похож на дикий запад, но его улучшение. Это очень отличная модель от кодирования в php, но она очень хорошо подходит для многих веб-сайтов. Возможно, вы захотите сделать тонкий сервер (предоставить REST API и ваши конечные точки веб-сокета) с более толстым клиентом, использующим что-то вроде BackBone.js для поддержания чистоты взаимодействия.

Большая выгода от выполнения всего этого в узле заключается в том, что у вас не будет дублирования кода между php и js для работы с БД или любыми другими службами, необходимыми обоим. Node.JS также великолепно обрабатывает тонны и тонны одновременных запросов.

Удачи

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