Повторное использование базовых маршрутов, моделей и представлений на сервере node.js - программирование
Подтвердить что ты не робот

Повторное использование базовых маршрутов, моделей и представлений на сервере node.js

Я пытаюсь создать приложение, которое работает как SPA, и как обычное приложение, не переписывая какой-либо код как можно больше. Мои исследования привели к тому, что это может быть очень возможно с использованием node + магистрали (как на сервере, так и на клиенте). Я нашел некоторые ресурсы о том, как это сделать, но ничего действительно не закончено. Кто-нибудь попробовал полное решение для повторного использования всего кода?

Ресурсы, которые я нашел: Повторное использование базовых моделей на сервере: http://blog.andyet.com/2011/feb/15/re-using-backbonejs-models-on-the-server-with-node/

Повторное использование представлений магистрали и менеджера макетов на сервере: http://vimeo.com/46033641

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

4b9b3361

Ответ 1

То, что вы пытаетесь реализовать, - это модель Resource-View-Presenter. Пожалуйста, прочитайте эту статью полностью http://blog.nodejitsu.com/scaling-isomorphic-javascript-code. Он предоставляет очень необходимую информацию для изоморфного кода, который может выполняться как на клиенте, так и на сервере. Это также помогло мне понять различные модели и архитектуры.

В качестве backbone.js используется традиционная среда MVC, которая не может работать как на клиенте, так и на сервере без изменений. Поэтому, если вы хотите придерживаться backbone.js, вы столкнетесь с этим недостатком рано или поздно. Я тоже пробовал позвоночник и не нашел простого способа сделать это.

Я пробовал искать рамки RVP на node.js, но он все еще новенький. Я предлагаю вам заглянуть в flatiron.js http://flatironjs.org/. Он основан на модели Resource-View-Presenter, единственной, которую я смог найти для node.js. Некоторые изменения потребуются для реализации на сервере и клиенте, но это немного. Вы найдете, что он похож на позвоночник.

Надеюсь, он поможет вам найти правильный путь.

Ответ 2

Недавно я провел некоторые исследования в этой области и нашел интересные проекты, которые используют один и тот же базовый код на клиенте и сервере (nodejs).

Проект 1

Первый из них был представлен Кейтом Норма из Groupon. Ему удалось повторно использовать базовый маршрутизатор + шаблоны на клиенте и сервере.

Демо приложения: https://github.com/keithnorm/SpainJS-Pipedream-Demo

Презентация в ИспанииJS: http://www.youtube.com/watch?v=jbn9c_yfuoM

Проект 2

Второй проект - Rendr, представленный Спайком Бремом из Airbnb, но еще не выпущенный публике. Это кажется немного более амбициозным, поскольку он также торгует базовой моделью и коллекциями на сервере nodejs. Подробнее об этом можно прочитать здесь: http://nerds.airbnb.com/weve-launched-our-first-nodejs-app-to-product

UPDATE: был выпущен код Rendr: https://github.com/airbnb/rendr

Проект 3

Существует еще один проект, который также позволяет обмениваться базовым кодом между клиентом и сервером: https://github.com/developmentseed/bones