2016-12-07 4 views
1

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

Например, у меня есть следующий код:

PensionsUser.loginView = function (ctx, credentials, cb) { 
    var respJSON = util.getresponseTemplate(); 

    credentials.email = credentials.email.toLowerCase().trim(); 
    PensionsUser.login(credentials, 'user', function (err, loginResp) { 
     if (err) { 
     util.addErrorToResponse(err, respJSON, 'NO-PUS-LV-001'); 
     app.log.error(util.loggingTemplate('PensionsUser', 'loginView', 'NO-PUS-LV-001', credentials.email)); 
     ctx.res.status = 401; //does not work 
     cb(null, respJSON); 
    //etc. 

Я знаю, что cb(null, respJSON) должен возвращаться ошибку как этот cb(respJSON), но, к сожалению, код внешнего интерфейса полагается на это JSON возвращается в настоящее время является поэтому мой первый шаг должен был бы просто изменить код статуса.

Возможно ли это?

ответ

0

В случае ошибки вы можете установить статус, как это:

callback({status: 401, message: 'Your error message'}); 

И для успеха коды статуса вы кто-то уже ответил здесь: https://stackoverflow.com/a/26942431/1827886

2

Вы можете установить пользовательскую ошибку как {ошибка: 500, сообщения: " Custom Error "} или вы можете настроить« сильный-обработчик ошибок »в конфигурационном файле промежуточного программного обеспечения.

0

Для отправки ответного кода в соответствии с вашими требованиями, вы можете использовать этот код:

"YourModelName"."YourRemoteMethod" = function("YourAcceptArguments", callback) { 

     var error = new Error("New password and confirmation do not match"); 
     error.status = "Enter the resposne code that you want to send"; 
     // Example => error.status = 400 
     return callback(error); 
    }; 

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

  • Нет связанных вопросов^_^