обмениваться магистральным кодом на стороне клиента и сервера с хранилищем mongodb - PullRequest
3 голосов
/ 06 февраля 2012

Я ищу решение для кодирования только один раз моделей для приложений на основе магистрали, mongodb, nodejs.

Хранилище может быть только на стороне сервера, но мне все еще нужны правильные определения модели как на сервере, так и на клиенте. На стороне сервера я решил использовать mongodb.

После всего, что я нашел, это https://github.com/donedotcom/backbone-mongodb.

Мне кажется, я достаточно хорошо понял магистраль, но никогда раньше не использовал mongodb, и я не могу понять, как действительно использовать backbone-mongodb. Может кто-нибудь сказать мне, как он дополняет магистраль, для чего предназначены Document и EmbeddedDocument и как они связаны с Backbone.Model? Это как-то связано с совместным использованием кода ч / б клиентом и сервером?

Конечно, моя идея состояла бы в том, чтобы поделиться определениями и валидацией моделей (в основном с помощью магистральной валидации) ч / б с сервером и клиентом.

спасибо, Виктор

Ответы [ 2 ]

2 голосов
/ 14 февраля 2012

Я только что закончил переписывать backbone-mongodb

есть пример приложения todo (оставайтесь с коммитом eb935ae7480c18c9d6fcf2f5a2187cdff3d17a13) также доступно

1 голос
/ 07 февраля 2012

TL; DR

  • Document <-> Backbone.Model
  • Чтение и запись данных в Node.js путем переопределения Backbone.sync.
  • EmbeddedDocument нет точного соответствия: возможно, возможно реализовать через Магистрально-реляционный , требуется некоторая сборка.

Длинное чтение

Так как MongoDB является базой данных, ориентированной на документы, Backbone.Model вполне подойдет для документов Mongo. Вы можете думать о Документах MongoDB так, как если бы вы могли хранить доступные для поиска BLOB-объекты JSON (упрощение для начала, но все же). Они будут более или менее точно соответствовать моделям Backbones. EmbeddedDocument в некоторой степени соответствует (опять же, слишком упрощенно, по той же причине) связанным таблицам в традиционных реляционных системах. У них нет точного соответствия в мире Backbone, но вы можете использовать Backbone-реляционный для обработки их в своем приложении Node. Я не пробовал, но я делаю квалифицированное предположение, что для этого потребуется определенное количество рук.

На стороне узла вы захотите переопределить Backbone.sync, вероятно, глобально для чтения и записи Model объектов в документы MongoDB.

Кроме того, внедренные документы - это просто фактические данные, хранящиеся внутри другого объекта, а не ссылка на эти данные, хранящиеся независимо ( документы ). Также возможно создавать ссылки, которые больше похожи на традиционные отношения (см. Ту же ссылку).

Чтобы иметь возможность правильно программировать что-либо с помощью этой комбинации, я думаю, что вы должны прочитать хотя бы немного больше о MongoDB, вот несколько указателей:

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