Проект 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 жизненный цикл

Другие вопросы по тегам