2017-10-12 12 views
0

現在ループバックを使用しています。3.2.1アクセストークンの有効期限が切れたときに、ログファイルに記録されているエラーを処理できませんでした。 Googleの検索を行う私はこれを見つけたUnhandled errorここでは、私たちはカスタムエラーログミドルウェアを持つことができることが言及されています。私はそこに記載されている指示に従い、それについても文書を参照しました。しかし、次のエラーが発生しています。strongloopループバックカスタムエラー処理

エラー:適用できません.../server/middleware.staging.json:ミドルウェア "./middleware/error-logger"のフェーズ "final:after"は次のように定義されています。メイン設定。

現在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固有のファイルに値が設定された状態で、デフォルトのファイルに設定を変更する必要があります。たとえば、私の場合、ミドルウェアをmiddleware.live.jsonに追加しようとしていましたが、デフォルトのmiddleware.jsonファイルにミドルウェアを追加しませんでした。そのため、mergePhaseConfig()の値は、env固有のファイルに存在し、存在しないデフォルトファイルで検索されます。 デフォルトファイルにミドルウェアエントリを追加することで問題が解決しました。これはすでに文書で言及されていますが、今日は私の考えを飛ばしました。

関連する問題