2015-03-25 19 views
2

Sails.js提供了一種通過其Blueprint API填充多對多關係中對象的方法。因此,GET /categorymodel/:categoryid/productscollection將返回屬於指定類別的所有產品。 Link通過Sails.js中的關係填充許多對象

對於多對多通過關係,文檔建議通過中間模型使用多個一對多關係來實現所需的組織。這樣做的缺點是無法通過內置的Blueprint API填充對象。 Link

所以,雖然查詢屬於特定類別的產品,我查詢GET /categorymodel/:categoryid/intermediarycollection要達到這樣的

[{categoryid: 1, productid: 1, id: 1}, {categoryid: 1, productid: 2, id: 2}, {categoryid: 1, productid: 3, id: 3}, ... n] 

這意味着客戶將不得不GET /products/:productid n次。

如何在發送到客戶端之前處理填充()結果(而不編輯/覆蓋它)以添加產品對象?有沒有更好的方法來做到這一點?

+0

我有一個類似的問題,我想的藍圖組裝它的數據(在我的案件的活動記錄的目的)後發出的事件。就目前而言,我認爲我堅持逐字複製Sails藍圖控制器。 – 2015-04-22 07:12:47

+1

就像旁註一樣,您不必** GET/products /:productid ** n次。 使用WHERE IN子句和一個ID數組(以及適當的限制)來執行** GET/products/**。然後在前端根據結果設置產品。它會爲您節省大量的網絡開銷。 – 2016-10-18 16:44:06

回答

0

是的!這是可能的,但它是一種黑客..?

藍圖的下層行爲是從數據庫中調用res.ok。如果我們改變了res.ok的行爲,並添加了過濾器或類似的自定義需求,該怎麼辦?

就以這樣的回答來看看更多細節:https://stackoverflow.com/a/41932352/36975

相關問題