如何在我的控制器中使用Sails.js actionUtil.js?

时间:2017-02-10 13:52:44

标签: sails.js

我使用sails command line生成了一个api building,现在我想在路由/building内自定义逻辑。我检查sails source code以使用我的自定义功能复制find操作的基本行为。

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

我的最终目标只是展示用户可以访问的建筑物,如果你有比复制帆源代码更好的想法,我就在!

由于

3 个答案:

答案 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)

通过从控制器文件路径指定相对文件路径,您可以像任何其他模块一样导入它。