如何编写以路径参数为目标的路由

How to write a route that targets an action from a path paramater

如果我有多个 url,如“/some/url/path/foo/bar1”、“/some/url/path/foo/bar2”、“/some/url/path/foo/bar3”等。如何编写一个路由将 url 定向到foo 控制器和 bar1、bar2、bar3 等的动作

EG。 (只有这个不行。)

'/some/url/path/foo/:bar' : 'foo.:bar'

有多种方法可以做到这一点。我可能会建议您不需要控制器中的不同操作,而只需在响应 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)

}