2017-09-18 1 views
0

콜백과 미들웨어 next() 함수의 차이점을 알고 있습니다. 루프백 원격 메소드 정의를 작성하는 경우Strongloop 루프백에서 오류 처리

, 난 쉽게 콜백 예에하지만 원격 후크 또는 내가 다음() 함수의 예에서 오류를 보낼 때마다 관측을 콜백 (오류, 널을) 오류를 보낼 수 있습니다

var err = new Error('This is error'); next(err)

항상 내부 서버 오류라고하지만 오류는 무엇인지 알려주지 않습니다. 오류를 보려면 서버에 로그인하고 로그를 봐야합니다. 다음 프런트 엔드에서 어떤 오류가 발생했는지 알 수 있도록 next() 함수에서 오류를 어떻게 보낼 수 있습니까?

답변

0

아마의 후크 미들웨어를 사용

app.use(function(err,req,res){ 
    res.json(err); 
}); 

가 (이 마지막 미들웨어 정의 그가 필요 ...)

+0

그래서 @jonas에서 모든 요청을 체크 인 또는 체크 아웃하는 엔드 포인트가 있다고 말하고 있습니까? 너는 abit 세부 사항에서 설명 할 수 있겠 니? –

0

은 기본적으로 당신이 잘못을하고 결과에 콜백을 정의 할 수 있습니다. 예를 들어, 루프백에서 모델 호출 "조치"가있는 경우 json을 사용하여 오류 또는 결과를 프런트 엔드로 간단하게 보낼 수 있습니다.

app.get('/your/api/call', function (req, res, next) { 
    var getTeam = function (cb) { 
     app.models.Team.find({}, function (err, teams) { 
     if (err) { 
      cb(err); 
     } else { 
      cb(null, teams); 
     } 
     }); 
    }; 
    async.waterfall([ 
     getTeam 
    ], function (err, team, role) { 
     if (err){ 
res.send(err); //send error to front end 
} else { 
res.send(team); //send result to front end 
} 

    }); 
    }); 

이 접근법은 루트 수준의 "app.use"기능과 함께 사용할 수도 있습니다.

관련 문제