2015-02-11 46 views
0

目前正在清理我的sails後端中的一些代碼,我不太清楚如何正確配置特定控制器的藍圖。Sails.js在查找藍圖中禁用查詢參數

所以我希望我的一個端點總是隻返回最後10個結果,並禁止limit/find/where作爲查詢參數的能力。到目前爲止,我只是通過重寫控制器中的查找來完成此操作,但我想知道是否有配置藍圖的方法。

我在控制器_config中添加了以下內容,它允許設置默認值,但仍可以用?limit = 15替換。

_config:{ 排序: 'ID_STR遞減', 極限:5 }

感謝。

回答

1

您可以編寫一個策略,在查找請求時執行您的模型。

API /政策/ limitResults.js

module.exports = function(req, res, next) { 
    req.query.limit = 10; 
    req.query.sort = 'id_str desc'; 
    return next(); 
} 

配置/ policies.js

ModelController: { 
    'find': ['limitResults'] 
} 

這應該覆蓋要求的限制參數,按降序排序結果。

+0

謝謝,可能會這樣,但我並沒有發現它非常優雅......我可能會最終修改查找藍圖以允許在路線上設置最大限制和其他選項。我只是期待這個功能已經在代碼庫中,並且只是無法找到它。 – Adraen 2015-02-12 18:54:31

+0

這是正確的方法。不確定4行代碼的不雅之處。 – 2015-02-13 03:55:16