我使用sails command line生成了api building
,现在我想定制路由/building
中的逻辑。我检查了sails source code以复制find
动作的基本行为与我的自定义。如何在我的控制器中使用Sails.js actionUtil.js?
我看到非常方便的库actionUtil用于执行此操作,我想在控制器中重用此文件。我怎样才能做到这一点 ?
我的最终目标是显示用户有权访问的建筑物,如果您有比复制sails源代码更好的主意,我就进入了!
感谢
我使用sails command line生成了api building
,现在我想定制路由/building
中的逻辑。我检查了sails source code以复制find
动作的基本行为与我的自定义。如何在我的控制器中使用Sails.js actionUtil.js?
我看到非常方便的库actionUtil用于执行此操作,我想在控制器中重用此文件。我怎样才能做到这一点 ?
我的最终目标是显示用户有权访问的建筑物,如果您有比复制sails源代码更好的主意,我就进入了!
感谢
您可以在控制器中导入它或任何你只需指定完整路径e.g
VAR actionUtil =需要它要求( '帆/ lib目录/钩/蓝图/ actionUtil');
您可以导入它就像任何其他的模块,由控制器文件路径指定相对文件路径。
Santosh Gali的回答是正确的,但只是想建议一种实现你的方式。
我不知道这是否是这样做的正确的方式,但...
如果你看一下在actionUtil的parseCriteria
方法,你会发现这条线:where = _.merge({}, req.options.where || {}, where) || undefined;
,因此可以真正通过修改req.options.where来修改标准。
所以,如果你创建了这一个政策,你要善于去
module.exports = function (req, res, next) { if (!req.options.where) req.options.where = {}; req.options.where.owner = req.session.user; next(); };
当然,你必须使用会话可能,为此节省了用户ID在它的工作。
非常感谢!它工作得很好! –
非常明显,谢谢!我的糟糕之处在于我以全局模式安装了风帆。顺便说一句,没有比为我正在尝试做的事情复制sails的源代码更好的办法吗? –