2016-09-22 19 views
1

我需要實現一堆在FeathersJS應用上執行非常自定義/複雜操作的路由。如何在FeathersJS中實現自定義/複雜的操作路由

其中一條路線是/Category/disableExclusiveContentsOf/:id。它對六個數據庫表運行查詢,以查找與:id類別相關的行。我絕對不能使用FeathersJS提供的查詢抽象。然後,它使用FeathersJS的「本地」API來更新我找到的行,以便向客戶端發起數據更新事件。

但是,如果我單獨使用Express實現路由,Feathers認證/授權掛鉤將不會運行,因此端點將不受保護,這是要求。

如何在FeathersJS應用程序中容納這些東西?

回答

7

可以使用your own service仍然實現路線和使用:idroute parameter

app.use('/Category/disableExclusiveContentsOf/:id', { 
    find() { 
    // do complex stuff here 
    } 
}); 

有一件事我會建議改變是,URL似乎是行動,而不是面向資源的。這意味着有人可以通過GET請求來更改您的應用程序數據,這通常被認爲不是一種好的做法(例如,在某些情況下,Google抓取工具進來並刪除/更改了一堆內容)。

羽毛鼓勵您思考資源而不是自定義路線和行動。在你的情況下,你會有一個ExclusiveContents服務,你可以POST到:

app.use('/Category/ExclusiveContents/:categoryId', { 
    create(data, params) { 
    // do complex stuff here 
    params.categoryId // the id of the category 
    data // -> additional data from the POST request 
    } 
}); 
相關問題