bumbay
@bumbay
Node.JS, MongoDB, PHP

Как создать структуру Node.JS приложения?

Здравствуйте.

Задача: написать сайт (чат) на node.js + socket.io, mongodb и angularjs.

Что и как будет работать?
- node будет использоваться только для отдачи index.html и обработке ajax-запросов
- nginx будет отдавать всю статику до node сервера
- angular будет осуществлять переход по страницам и грузить данные от node через ajax


node.js будет обрабатывать такие запросы:
- регистрация и авторизация
- сохранение и отправка сообщений
- создание чатов
- загрузка чатов
- и много мелких функций, которые будут работать с mongodb через node


node будет отдавать ответы только в json-формате и иногда принимать файлы (можно сказать api)

Будет примерно 3-5 моделей mongoose Schema
- chats
- users
- messages
- other..
..

Будет примерно 20-30 post-обработчиков, которые будет связаны с mongodb.

Сейчас есть мелкий прототип. Работает с использованием express.
Там весь код кроме моделей и некоторых lib лежит в корне, в server.js - мне это не нравится, ибо я чувствую что это не правильно.
код - обработка post запросов ajax, остальное - мелочь (подключение модулей и запуск сервера)


Что я хочу?
— чтобы знающие и опытные программисты подсказали как правильно организовать работу с моделями и обработку post запросов ajax?
— хочу узнать как не делать все это в одном файле?
— или может быть делать?

Я благодарю всех, кто постарается мне помочь.
С уважением.
  • Вопрос задан
  • 5174 просмотра
Пригласить эксперта
Ответы на вопрос 3
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Комментировать
qfox
@qfox
Ответы есть у меня
Модели лучше завернуть в абстракции, при чем, вынести общий код отдельно, код для браузера — отдельно, код для ноды — отдельно. Чтобы `require(['fs'], (fs) => fs.read)`, например, работал одинаково и в браузере, и в ноде.

Не делать в одном файле — раскидывать по плагинам, посмотреть/попробовать пакеты architect и pym, либо использовать свой интерфейс. Еще лучше использовать какой-нибудь cluster и делать весь функционал приложения в одном потоке. Лучше много мелких, чем одно большое.
Ответ написан
scapp
@scapp
JS фрилансер
sails generate new coolMongooseApp
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы