正如标题所示,我想在不同的控制器中为 Sails Js 中的同一路线分配多个操作处理程序
我尝试过的:
"post /rest/users": [{
controller: "FirstController",
action: "someAction"
},
{
controller: "SecondController",
action: "otherAction"
}]
但这给了我 Sails 中的错误 51,并且没有达到任何操作(调试时)。我搜索了这个解决方案,但找不到任何东西。
我知道 Sails 使用 Express 的路由中间件,并且我发现可以通过以下路由在 Express 中完成此操作:
app.post('/users', createUser, saveToDB, endTheResponse, sendEmail);
我知道一些可能的解决方法(例如要求第一个中的控制器),但这不是我正在寻找的,并且我无法将 Express 示例路线调整为 Sails 路线。
欢迎任何建议!谢谢。
好的,经过1个多星期的搜索,我找到了解决方案here。因此,每个正在处理这个问题并且在调用多个控制器时遇到问题的人都可以在这里了解如何实现这一点。从要点来看:
路由现在可以指定目标列表,这些目标将按顺序运行
(这允许将中间件链直接绑定到路由)。
控制器(controller.action)和任意中间件
新的可选中间件目录中的(中间件)功能可以
以任何顺序指定:
{
'post /signup': ['user.unique', 'user.create', 'verifyemail.send'],
'/auth/logout': ['authenticated', 'auth.logout']
}
您还可以继续使用经典{controller: 'foo', action: 'bar' }
符号。为了方便起见,杂项字符串被视为
重定向:
{
// Alias '/logout' to '/auth/logout'
'get /logout': '/auth/logout',
'/thegoogle': 'http://google.com'
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)