从快速js中的另一个控制器调用控制器动作

时间:2013-11-24 20:36:31

标签: node.js express sails.js

在我的expressjs / sailsjs应用程序中,我有2个控制器:

- MainController only used to display the pages (for instance /signin route displays the signin page)
- ProxyController that handles several action (API calls)

在ProxyController的一个动作中,我需要重定向到登录页面,我使用res.redirect('/ signin'),但没有任何反应。

在我的路线中:

    '/signin' : {
       controller: 'main',
       action: 'signin'
    },

如何从ProxyController调用MainController的登录操作?

2 个答案:

答案 0 :(得分:2)

调用ProxyController的客户端是否知道如何处理HTTP重定向?

我怀疑您正在使用AJAX调用来命中代理,如果是这种情况,那么您需要评估HTTP响应并执行重定向。浏览器会自动执行此操作,但AJAX不会这样做。

答案 1 :(得分:1)

我有同样的问题 - 如何从Express中的另一个控制器调用一个控制器。

我试过这个 - 代码在辅助控制器中,然后调用LoginCntrlr - 它就是这样做的:

var rootPath = '..';
var rendering = require(rootPath + '/util/rendering'),
    loginController = require(rootPath + '/controllers/login');

exports.mySecondaryLogin = function(req, res) {

    // access get params
    console.log('user type param "ut" is : ' + req.query.ut);

    // Set login params and send to check Login (a POST request)
    req.body.un = 'user@acme_someplace.com';
    req.body.pw = '@@@@';

    return loginController.checkLogin(req, res);
}