为了账号安全,请及时绑定邮箱和手机立即绑定

在sails.js中覆盖CRUD蓝图

/ 猿问

在sails.js中覆盖CRUD蓝图

慕容708150 2019-12-04 09:58:18

根据航行中的这个封闭问题:https : //github.com/balderdashy/sails/issues/835


CRUD蓝图覆盖 “绝对,这是v0.10版中的更新”


我想修改我的sailsjs服务中的蓝图,以允许命名的根(在ember中消耗)。目前,我必须使用动作对自定义创建的每个控制器进行自定义,这些动作与蓝图中已经存在的动作大体相同。


我怀疑我现在可以将此代码移出控制器,并移至蓝图覆盖区域,但是我不清楚该代码放在何处。


.10回购中的任何示例,甚至只是指向相关代码的指针,都将不胜感激。


查看完整描述

3 回答

?
慕森卡

更新资料

为了以下述方式在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'}


查看完整回答
反对 2019-12-04
?
烧仙草VB

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


改变破坏行为


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]);

     });

  }

}


查看完整回答
反对 2019-12-04
?
湖上湖

可以使用蓝图中的构建,但要先运行策略。这些策略可能会验证用户已登录,具有正确的访问权限或类似权限。真的好用!


在每个模型上,在存储数据之前和之后都有可用的回调。挖掘:http : //sailsjs.com/documentation/concepts/models-and-orm/lifecycle-callbacks


没有可用于蓝图结果的默认回调。但是不要放弃。仍然可以使用构建蓝图,而仅修改输出。它可能不是最优雅的解决方案,但效果很好。在这里查看我的“ hack”:Sails绘制生命周期蓝图


查看完整回答
反对 2019-12-04

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信