Проект CRUD, переопределяющий в sails.js
Согласно этой закрытой проблеме в паруса: https://github.com/balderdashy/sails/issues/835
Проект CRUD переписывает "абсолютно, это будет в версии 0.10"
Я хотел бы изменить чертежи в моем сервисе sailsjs, чтобы разрешить именованные корни (используя ember). В настоящее время мне приходится настраивать каждый контроллер, который я создаю, с помощью действий, которые в значительной степени дублируют то, что уже есть в чертежах.
Я подозреваю, что теперь я могу переместить этот код из моих контроллеров в область переопределения чертежей, но я не знаю, где разместить этот код.
Будем весьма благодарны за любые примеры или даже просто указатель на соответствующий код в паруса.10.
3 ответа
Обновить
Чтобы переопределить чертежи в Sails 1.0 способом, описанным ниже, вы должны сначала установить плагин "custom blueprints" для вашего проекта (npm install sails-hook-custom-blueprints
).
Чтобы переопределить чертежи в Sails v0.10, вы создаете api/blueprints
папку и добавьте ваши файлы чертежей (например, find.js
, create.js
и т. д.) внутри. Вы можете взглянуть на код для действий по умолчанию в хуке чертежей Sails для быстрого старта.
Добавление пользовательских чертежей также поддерживается, но в настоящее время они не привязываются к маршрутам автоматически. Если вы создаете /blueprints/foo.js
файл, вы можете привязать маршрут к нему в вашем /config/routes.js
файл с (например):
'GET /myRoute': {blueprint: 'foo'}
Вы можете добавить действия с этими именами в свой контроллер, чтобы переопределить поведение по умолчанию
изменить разрушить поведение
module.exports = {
destroy: function(req,res){
Goal.update({ id: req.param('id') }, { deleted: true })
.exec(function (err, goal) {
if (err) return res.json(err, 400);
return res.json(goal[0]);
});
}
}
Можно использовать сборку в чертежах, но с политиками, запускаемыми первыми. Эти политики могут проверять, что пользователь вошел в систему, имеет правильный доступ или подобное. Действительно удобно!
В каждой модели доступны обратные вызовы как до, так и после сохранения данных. Копаться в: http://sailsjs.com/documentation/concepts/models-and-orm/lifecycle-callbacks
Нет никакого обратного вызова по умолчанию, доступного для результата чертежей. Но не сдавайся. Все еще возможно использовать сборку в чертежах и изменять только вывод. Возможно, это не самое элегантное решение, но оно работает хорошо. Проверьте мой "взлом" здесь: Sails blueprints жизненный цикл