通过路由重定向请求sails.js
问题描述:
我想在我的应用程序中有一个子部分: 例如,发送到www.example.com/backoffice/user
的所有请求都应该在我的BackofficeUserController.js
中重定向。通过路由重定向请求sails.js
我ue sails.js,我知道我必须这样做config/routes.js,我只是不知道如何。
我尝试这样做:
'/backoffice/:controller/:action?': {
controller : 'backoffice' + ':controller',
action : ':action'
}
但它没有工作。任何想法? 该文档没有太多解释动态路由。 http://sailsjs.org/#!documentation/routes
答
这实际上是嵌套控制器的体面用例。如果你做的是sails generate controller backoffice/user
,你最终将得到一个controllers/backoffice/userController.js
文件,该文件对应于一个名为Backoffice/UserController
的控制器类。所有到/backoffice/user/:action
的请求都会自动发送到该控制器。
答
将所有捕获的参数传递给请求对象上的控制器的操作方法。也许你应该在定义路由时更明确一些,或者使用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惯例。
你是说如果我在内部办公室里创建控制器,他们会自动使用吗?我需要在命令行中执行吗? – Vadorequest
我实际上在第一个地方尝试过,在写这封邮件之前它并没有工作。我在这里再次尝试(0.9.8),但仍然没有。我尝试使用命令行生成的控制器,但仍然无法正常工作。 – Vadorequest
而我的config/routes.js不包含比'/'路线更多的东西。 – Vadorequest