Использование Node.js с Django и Backbone.js - PullRequest
16 голосов
/ 26 ноября 2011

Некоторые предыстории: Я планирую создать приложение с Django в качестве бэкэнда и использовать Backbone.js в качестве инфраструктуры Javascript внешнего интерфейса.Это одностраничное приложение (SPA), и именно поэтому я решил использовать Backbone.js.Приложение похоже на движок блогов;пользователи публикуют записи, содержащие текст и изображения, и могут просматривать их по тегу.Они могут искать в своих записях по «тегу» или по определенному слову.

В последнее время, услышав обо всей этой шумихе по поводу Node.js, мне стало интересно, как это может помочь моему приложению?Но я не хочу, чтобы приложение запускалось исключительно на node.js в бэкэнде, т.е. я все еще хочу использовать Django для бэкэнда.Можно ли использовать Node для «среднего конца», как упоминалось здесь ?

Как я могу оптимизировать свое приложение с Node.js?

Ответы [ 2 ]

23 голосов
/ 26 ноября 2011

Похоже, что ваше приложение не обязательно нуждается в Node.js.Основными причинами, по которым вы можете захотеть использовать Node в дополнение к более традиционным фреймворкам, таким как Django или Rails, является наличие в вашем приложении аспекта реального времени или многопользовательской игры.

Я бы не стал использовать Node.js, потому что вокруг него много суеты - если вам нужна вышеупомянутая функциональность, это может быть здорово.

Архитектура высокого уровня вашего приложения может выглядеть примерно так:

Django

  • Обслуживание одной страницы
  • Обслуживание ресурсов (css, js, изображения и т. д.)
  • Обработка подключения к БД - лучше всего настроить маршруты RESTful для каждой модели данных
  • Обработка данных и т. д. *

Магистраль

  • Обработка взаимодействия с пользователем
  • Создание http-запросов на чтение и запись данных

Узел (необязательно)

  • Используйте что-то вроде Socket.io для уведомления клиентов об обновлениях (вместо опроса)
  • Вы можете заменить функциональность Django с одним или комбинацией узловых модулей
4 голосов
/ 26 ноября 2011

Если вы чувствуете себя комфортно с Python и Django в целом, я бы рекомендовал использовать веб-сервер, такой как Tornado.Он очень прост в использовании и имеет крутой курс обучения, если вы знакомы с Django.В общем, вы увидите улучшения производительности и сможете реализовать иные «неясные» функции, такие как программирование Comet.

Что касается внешнего интерфейса, то да, Backbone - отличный выбор, но при этомследите за Coffeescript тоже ...

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