2017-02-10 63 views
0

我使用sails command line生成了api building,现在我想定制路由/building中的逻辑。我检查了sails source code以复制find动作的基本行为与我的自定义。如何在我的控制器中使用Sails.js actionUtil.js?

我看到非常方便的库actionUtil用于执行此操作,我想在控制器中重用此文件。我怎样才能做到这一点 ?

我的最终目标是显示用户有权访问的建筑物,如果您有比复制sails源代码更好的主意,我就进入了!

感谢

回答

1

您可以在控制器中导入它或任何你只需指定完整路径e.g

VAR actionUtil =需要它要求( '帆/ lib目录/钩/蓝图/ actionUtil');

0

您可以导入它就像任何其他的模块,由控制器文件路径指定相对文件路径。

+0

非常明显,谢谢!我的糟糕之处在于我以全局模式安装了风帆。顺便说一句,没有比为我正在尝试做的事情复制sails的源代码更好的办法吗? –

2

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在它的工作。

+0

非常感谢!它工作得很好! –

相关问题