Как выполнять SQL-соединения и отношения в Sails.js и Waterline?
может ли кто-нибудь помочь мне в настройке реляционной схемы и выполнении соединений в паруса.js?
2 ответов
Ассоциации официально поддерживаются в Waterline
обзор
С парусами и ватерлинией можно связать модели в нескольких хранилищах данных. Это означает, что даже если ваши пользователи живут в PostgreSQL, а их фотографии-в MongoDB, вы можете взаимодействовать с данными так, как если бы они жили вместе в одной базе данных. Вы также можете иметь ассоциации, которые охватывают различные соединения (т. е. datastores / databases), используя тот же адаптер. Это удобно, если, например, ваше приложение должно получить доступ/обновить устаревшие данные рецептов, хранящиеся в базе данных MySQL в центре обработки данных вашей компании, но также хранить / извлекать данные ингредиентов из новой базы данных MySQL в облаке.
Поддерживаемые Типы Ассоциации
Запланированные Типы Ассоциаций
Оригинальное Сообщение
Я автор Waterline, ORM, используемый в парусах. Ватерлиния-это бренд новые и мы добавляем функции все время. В настоящее время у нас нет поддержка ассоциаций, но он следующий на карте. Мы отработали API для ассоциаций, которые, я думаю, большинству людей действительно понравятся. Вы можно просмотреть текущую работу и предлагаемый API по адресу: [предлагаемые паруса Ассоциации API][1].
мы собираемся заняться ассоциациями и транзакциями дальше и надеемся подготовьте их в следующем месяце или около того.
в то же время, если вы используете адаптеры MySQL или PostgreSQL они оба выставляют raw
.query()
метод, который позволяет передавать в ручной sql-запрос и его выполнение. Я полностью осознаю это не идеально, но должно позволить вам продолжать создавать свое приложение в то время как мы получаем поддержку ассоциаций и объединений.сигнатура функции для метода запроса:
Model.query(<sql query>, <optional data>, callback);
пример из particle banana работает, но на самом деле должен использовать "новый", как "VAR instance = new User._model (values)". Я использую следующий код и он работает.
Accounts.query(query, function(err, accounts) {
if (err)
return fn(err);
accounts = _.map(accounts, function(account) {
return new Accounts._model(account);
});
fn(null, accounts);
});