LocomotiveJS - 如何访问另一个控制器的方法

时间:2015-07-16 04:34:32

标签: javascript node.js locomotivejs

我使用locomotivejs构建api,我想知道是否有办法从另一个控制器中访问控制器方法?

1 个答案:

答案 0 :(得分:2)

唯一的可能性是请求另一个控制器。 在我们的机车项目中,我们使用Service在不同的控制器之间执行相同的代码,如下所示:

控制器:

'use strict';

var Controller          = require('../../../libs/v1.2/controller'),
    codes               = require('../../../config/app/codes'),
    MediaService        = require('../../services/v1.2/media_service');

var AlbumsController = new Controller();

AlbumsController.index = function() {
    var service  = new MediaService(),
        exampleParam  = this.param('exampleParam');

    service.findAllAlbums(exampleParam, function(err, result){
        if(err){
            this.res.status(codes.http.success).json([]);
            return;
        }
        this.res.status(codes.http.success).json(result);
    }.bind(this));
};

在这个例子中,我直接调用一个服务方法来获取我的所有专辑,如果需要,我在另一个Controller中调用此方法。我认为在不同的控制器操作中使用相同操作的最佳方法。