2015-07-16 2 views

ответ

2

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

Контроллер:

'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)); 
}; 

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

+0

Как вы передаете данные, которые вы обычно получаете через 'this.param()'? – clueless

+1

oh, здесь я использую функцию 'getIndexParams()', потому что я использую те же параметры во многих контроллерах. Я редактирую свой ответ – throrin19

Смежные вопросы