2017-10-12 12 views
0

현재 루프백 3.2.1을 사용하고 있습니다. 액세스 토큰이 만료되면 로그 파일에 기록되는 오류가 처리되지 않습니다. 구글 검색을 수행 나는이 걸쳐 왔어요 Unhandled error 여기에 우리가 사용자 정의 오류 로깅 미들웨어를 가질 수 언급했다. 나는 그곳에서 언급 된 지침을 따르고 그것을 위해 문서를 참조했다. 그러나 다음과 같은 오류가 나타납니다 :strongloop 루프백 사용자 정의 오류 처리

오류 : 적용 할 수 없습니다 .../server/middleware.staging.json : "최종 : 후"미들웨어 "./middleware/error-logger"가 다음에서 정의되지 않았습니다. 주 설정.

현재 middleware.staging.json :

... 
"final": { 
    "loopback#urlNotFound": {} 
    }, 
    "final:after": { 
    "./middleware/error-logger": {}, 
    "strong-error-handler": { 
     "params": { 
     "debug": false, 
     "includeStack": false, 
     "log": false 
     } 
    } 
    } 

서버/미들웨어/오류 logger.js :

module.exports = function createErrorLogger(options) { 
    return function logError(err, req, res, next) { 
    // your custom error-logging logic goes here 

    const status = err.status || err.statusCode; 
    if (status >= 500) { 
     // log only Internal Server errors 
     console.log('Unhandled error for request %s %s: %s', 
     req.method, req.url, err.stack || err); 
    } 

    // Let the next error handler middleware 
    // produce the HTTP response 
    next(err); 
    }; 
} 

내가 여기에 놓친 거지 뭐?

답변

0

마지막으로 루프백의 설정 파일을로드하는 코드를 찾은 다음 알아 냈습니다. 루프백은 현재 모든 기본 구성 파일을 읽은 다음 env 특정 파일과 병합합니다. 따라서 필요한 모든 구성 변경 사항은 기본 파일에서 env 특정 파일에 설정된 값으로 변경되어야 변경 사항이 필요에 따라 작동합니다. 예를 들어 내 경우에는 미들웨어를 .live.json에 추가하려고했지만 기본 미들웨어 .json 파일에 추가하지 않았습니다. 따라서 mergePhaseConfig() 값을 env 특정 파일에 표시하고 존재하지 않는 기본 파일에서 검색합니다. 기본 파일에 미들웨어 항목을 추가하면 문제가 해결됩니다. 이것은 이미 문서에서 언급되었지만 오늘 내 마음을 빼먹었습니다.