LocomotiveJS - Как получить доступ к методу другого контроллера

Я использую locomotivejs для создания API, и я хотел знать, есть ли способ получить доступ к методу контроллера из другого контроллера?

1 ответ

Решение

Единственная возможность - запросить другой контроллер. В нашем проекте локомотива мы используем 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));
};

В этом примере я вызываю метод сервиса напрямую, чтобы получить все мои альбомы, и, если я хочу, я вызываю этот метод в другом контроллере. Я думаю, что это лучший способ использовать одно и то же действие в разных действиях Контроллера.

Другие вопросы по тегам