我使用sails command line生成了一个api building
,现在我想在路由/building
内自定义逻辑。我检查sails source code以使用我的自定义功能复制find
操作的基本行为。
我看到非常方便的库actionUtil用于执行此操作,我想在我的控制器中重用此文件。我怎么能这样做?
我的最终目标只是展示用户可以访问的建筑物,如果你有比复制帆源代码更好的想法,我就在!
由于
答案 0 :(得分: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才能使其正常工作。
答案 1 :(得分:1)
您可以在控制器或任何需要的地方导入它,只需指定例如
的完整路径即可var actionUtil = require('sails / lib / hooks / blueprints / actionUtil');
答案 2 :(得分:0)
通过从控制器文件路径指定相对文件路径,您可以像任何其他模块一样导入它。