2017-02-10 64 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

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

相關問題