CRUD蓝图覆盖在sails.js中

dav*_*ton 29 node.js ember.js sails.js

根据这个封闭的帆船问题:https: //github.com/balderdashy/sails/issues/835

CRUD蓝图覆盖 "绝对,这将在v0.10中出现"

我想修改我的sailsjs服务中的蓝图以允许命名根(在ember中使用).目前,我不得不自定义我创建的每个控制器,其操作与蓝图中已有的重复.

我怀疑我现在可以将这些代码移出我的控制器并进入蓝图覆盖区域,但我不清楚该代码的放置位置.

任何例子,甚至只是一个指向风帆中相关代码的指针.10 repo将不胜感激.

sgr*_*454 40

更新

为了以下面描述的方式覆盖Sails 1.0中的蓝图,您必须首先为项目安装"自定义蓝图"插件(npm install sails-hook-custom-blueprints).


要覆盖在帆v0.10蓝图,您创建一个api/blueprints文件夹并添加您的蓝图文件(例如find.js,create.js内等).您可以在Sails蓝图钩子中查看默认操作的代码,以便开头.

还支持添加自定义蓝图,但它们当前不会自动绑定到路由.如果您创建了一个/blueprints/foo.js文件,您可以/config/routes.js使用(例如)绑定文件中的路径:

'GET /myRoute': {blueprint: 'foo'}
Run Code Online (Sandbox Code Playgroud)


Nou*_*our 11

您可以在控制器中添加具有这些名称的操作以覆盖默认行为

改变破坏行为

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]);
     });
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 是否可以使用特定于控制器的逻辑来包装默认行为?我想在某些情况下为创建的特定资源返回状态202而不是200. (2认同)