2013-11-30 4 views
0

Я уже некоторое время разрабатываю веб-приложение с использованием Node.js, Express, MongoDB, Mongoose и Socket.io. Версия первая только что была выпущена и отлично работает. Для версии 2, однако, я хочу полностью перепроектировать интерфейс и использовать интерфейсную инфраструктуру, такую ​​как AngularJS. Я смотрел на (MEAN stack), и это выглядит очень многообещающе. Прежде чем вдаваться в подробности, я попытаюсь объяснить цель и работу приложения, поэтому, надеюсь, вы поймете мой вопрос позже.Добавление AngularJS поверх существующих узлов Node.js, Express, MongoDB и Socket.io

Мое приложение является потоковым сервисом и имеет 4 простые модели: пользователь, комната, песня, плейлист. Они моделируются с помощью схемы в Mongoose и хранятся в базе данных MongoDB. Когда пользователь посещает приложение, он обслуживает весь HTML через Node.js и Express (а Jade - как механизм шаблонов). Если пользователь затем регистрирует, Socket.io позволяет серверу знать регистр пользователя, который затем сохраняется в базе данных, а пользователь соединяется в холле. В этой комнате пользователи могут общаться, слушать музыку и т. Д. Это то, что я использовал Socket.io для общения между пользователями и моим сервером (сервер иногда также обслуживает html через Socket.io). В основном все сообщения между Socket.io и сервером действительно маленькие (сообщения чата, объекты комнаты, объекты песни и т. Д.).

Я вполне доволен этим подходом, однако на стороне клиента код действительно не разделен. В настоящее время существует два файла JS, обслуживающих логику. Один обрабатывает события Socket.io и управляет dom. Другой - обычный JS-файл, который выполняет немного всего. Эти два файла теперь содержат около 5000 строк. Меня это беспокоит, и я хочу найти решение для этого в версии 2.

Итак, я смотрел на AngularJS в стеке MEAN и как включить его в свое приложение. Мой вопрос в том, будет ли это решать мои проблемы с клиентской стороной, и вы могли бы порекомендовать предпринять все усилия для этого. Кроме того, насколько хорошо Socket.io работает с AngularJS? Возможно, оба они могут быть чрезмерными для того, что я делаю. Знаете ли вы о какой-либо другой структуре, которая может быть легче интегрироваться с моей текущей средой? Я знаю, что это немного субъективный вопрос, но если у вас есть какие-то советы или что-то делать, спасибо за обмен! Я очень ценю ваши отзывы, и если вам нужна дополнительная информация, я был бы рад поделиться ею с вами!

Jordy

ответ

1

Я думаю, что реальный пример будет достаточно: https://github.com/btford/angular-socket-io-seed

+0

Этот пример очень красиво и близко к тому, что я ищу. Считаете ли вы, что для моего приложения AngularJS будет хорошим выбором? Почему, почему нет? – Kukiwon

+0

На мой взгляд, вы должны сделать несколько экспериментов - некоторые подходы не могут быть «унифицированы». Это зависит от того, как вы хотите разработать свое приложение. Долгосрочный: Угловая - хороший вариант, но если ваше приложение относительно невелико - зачем раздувать? Первое, что я подумал о том, чтобы увидеть ваш вопрос, - попробовать перекачивать данные по каналу WebSocket - меньше усилий процессора, более ответственного. Это похоже на процесс выбора структуры - вы выбираете то, что больше всего подходит вашим потребностям. – eRIZ

Смежные вопросы