2015-04-11 4 views
7

Я работаю с активными реализациями преобразования карт данных и данных ORM, чтобы знать проблемы с использованием активной записи, реализованной ORM в моих крупных проектах. Сейчас я собираюсь перенести один из моих проектов на node.js и попытаться найти похожие инструменты Im, использующие прямо сейчас. После исследования я не обнаружил ORM node.js, который следует за шаблоном mapper. Все они активны. Может быть, я что-то пропустил, и вы можете сказать мне, что есть хороший популярный ORM для node.js, который не следует за активным шаблоном записи?Javascript node.js ORM, который следует за шаблоном data-mapper

библиотеки Ive смотрели:

+0

Попробуйте [StrongLoop] (HTTP://strongloop.com/), вы можете сопоставить типы таблиц и создать клиент REST, который будет использоваться с REST API, созданным сопоставлениями. Не знаете, если это то, что вы ищете, но не больно ли это там в комментариях? :) – furier

+0

@furier это не похоже на orm – pleerock

ответ

11

После многих расстройств в настоящее время существует ORMS для JavaScript Я написал свой собственный ORM, который поддерживает Машинопись/ES6/ES5 и следует модели картографа данных и все другие лучшие практики - TypeORM

-5

Различие между данными картографа модели и активной записи не очень имеют смысл в динамическом языке, таком как JavaScript. Как правило, dataperper является более легким в типизированном языке, но в JS это не имеет особого значения. Сверху моей главы я могу упомянуть два очень популярных проекта, которые вы, вероятно, не знаете:

Waterline.js - аббревиатура Sails, которая отлично работает на многих системах баз данных.

Если вы считаете MongoDB для своей БД - Mongoose.js.

+4

на самом деле это имеет смысл и в javascript. Я уже работал с клиентскими библиотеками javascript, которые следуют за активным шаблоном записи, и они просто убивали мое приложение. Я не переписывал одни и те же библиотеки в стиле картографирования данных. – pleerock

+2

активная запись и сопоставление данных - это совершенно разные шаблоны с разными проектами. Не имеет значения, является ли это JavaScript или Java, шаблон, вероятно, одинаковый. –

1

Я написал ORM для Node.js, называемый node-data-mapper; он доступен здесь: https://www.npmjs.com/package/node-data-mapper. Это ORM для Node.js, который использует шаблон data-mapper. При чтении и записи в базу данных разработчик использует простые старые объекты JavaScript. Отношения между таблицами жестко не определены, что делает объединение очень гибким - по-моему, во всяком случае - хотя и несколько подробным. Фактический алгоритм сопоставления данных является быстрым и коротким, а сложность является линейной (преобразование из табличных данных БД в нормализованный объект JavaScript выполняется в одном цикле).

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

Я смоделировал интерфейс очень слабо после Doctrine 1. (Я использовал LINQ, Doctrine 1 и 2 и Hibernate довольно широко, и из тех ORM мне нравится интерфейс для Doctrine 1, лучший. Node-data-mapper не является портом JavaScript в Doctrine любым способом, и интерфейс существенно отличается.) Интерфейс запроса возвращает обещания с использованием модуля deferred.

Я смоделировал условия (например, предложения WHERE и ON) после условий MongoDB. Надеемся, что это делает несколько интуитивно понятных условий, предоставляя возможность делать многоразовые запросы (в частности, сложные запросы SELECT, которые можно фильтровать безопасно разными способами). Условия рассматриваются как язык, специфичный для домена, и лексируются, анализируются и скомпилируются.

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

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