2015-06-05 116 views
1

爲目標如果我有像'/ some/url/path/foo/bar1','/ some/url/path/foo/bar2','/ some/url/path/foo/bar3'等等。我怎樣才能編寫一個單獨的路徑,將url指向foo控制器以及bar1,bar2,bar3等的動作。如何編寫一個路徑,以目標路徑參數

EG。 (只有這不起作用。)

'/一些/ URL /路徑/富/:酒吧': 'foo.:bar'

+0

你是什麼意思的行動? – B3rn475

+0

控制器操作。 – SystemicPlural

回答

1

有不同的方式來做到這一點。我可能會建議你在你的控制器中不需要不同的動作,但只需要一個動作響應url參數(例如bar)。這將更符合公約。

但是,您可以通過以下操作完成所需操作。

創建你的路線

'/some/url/path/foo/:action': { 
    controller: 'FooController', 
    action: 'getAction' 
} 

然後在該控制器創建getAction方法。此方法現在可以使用req.param.action變量來查找執行相應操作。

FooController.getAction = function(req,res,next){ 

    return sails.controllers.foo[req.param.action](req,res,next) 

} 
+0

我的問題不夠具體。 url路徑實際上包含一些額外的部分,它們並未反映在控制器文件夾結構中。 (看我編輯的問題。)它仍然可能是這樣嗎? – SystemicPlural

+0

根據您更新的問題更新了答案 – Meeker