【问题标题】:Sails multiple handlers for the same route为同一路线航行多个处理程序
【发布时间】:2013-11-17 00:42:21
【问题描述】:

正如标题所示,我想在 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 之一。

欢迎提出任何建议!谢谢。

【问题讨论】:

    标签: node.js express sails.js


    【解决方案1】:

    好的,经过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'
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2012-05-06
      相关资源
      最近更新 更多