Я написал 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.
Попробуйте [StrongLoop] (HTTP://strongloop.com/), вы можете сопоставить типы таблиц и создать клиент REST, который будет использоваться с REST API, созданным сопоставлениями. Не знаете, если это то, что вы ищете, но не больно ли это там в комментариях? :) – furier
@furier это не похоже на orm – pleerock