通过路由sails.js重定向请求

时间:2014-02-08 23:33:40

标签: javascript node.js routes sails.js

我想在我的应用程序中有一个子部分: 例如,发送到www.example.com/backoffice/user的所有请求都应该重定向到我的BackofficeUserController.js

我是sails.js,我知道我必须使用config / routes.js这样做,我只是不知道如何。

我试过了:

'/backoffice/:controller/:action?': {
    controller    : 'backoffice' + ':controller',
    action        : ':action'
}

但它不起作用。任何的想法? 该文档没有解释太多关于动态路线的内容。 http://sailsjs.org/#!documentation/routes

2 个答案:

答案 0 :(得分:1)

所有捕获的参数都会传递给请求对象上的控制器操作方法。也许你在定义路线或使用UserController作为代理时应该更明确。

您可以拥有后台用户吗?

'/user/backoffice': 'UserController.backoffice'

或让后台控制器处理用户请求

'/backoffice/user/:id': 'BackofficeController.user'

或(我不确定控制器是否为全局控制器,但您可能需要来自另一个控制器的控制器并在UserController中使用其方法)

module.exports = {
  '/backoffice/user/:id': 'UserController.backoffice'
};

然后在你的UserController中

var BackofficeController = require('./BackofficeController');

module.exports = {
  user: function(req, res) {
   // Do something using BackOffice methods conditionally?
  }
};

实现相同结果的多种方法。不知道最好的方法是什么,因为我没有遇到过这个问题。但我建议坚持使用Sailsjs惯例。

答案 1 :(得分:1)

这实际上是嵌套控制器的一个不错的用例。如果执行sails generate controller backoffice/user,最终会得到一个与controllers/backoffice/userController.js控制器类对应的Backoffice/UserController文件。所有对/backoffice/user/:action的请求都将自动路由到该控制器。

相关问题