我想在我的应用程序中有一个子部分:
例如,发送到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
答案 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
的请求都将自动路由到该控制器。