2017-10-03 2 views
0

express.jsから来たhapi.jsの新機能hapi.js plugingのコンセプトとexpress.jsミドルウェアの違いを(もしあれば)理解しようとしています。いくつかの例とチュートリアルでは、プラグインの登録時にコールバックが表示されます。例えば:Hapi.jsプラグインコールバックの使い方は?

// load one plugin 
server.register(require('myplugin'), (err) => { 

    if (err) { 
     console.error('Failed to load plugin:', err); 
    } 

    server.route({ 
     method: 'GET', 
     path: '/test', 
     handler: function (request, reply) { 
      reply('test passed'); 
     } 
    }); 
}); 

だから私の質問です:外このルートを宣言対プラグインの登録のコールバックで残りのルートを宣言する使用は何ですか?

より一般的に、私はexpress.jsミドルウェアでexpress.jsにおけるミドルウェア対hapi.jsフレームワークにおけるプラグインの実行(の違いを知りたい要求がされるまで、処理されているように次々に実行されます最後のミドルウェアが呼び出される。それはhapi.jsで同じようですか?)

は、あなたの答え

答えて

0

リクエストのライフサイクルとは関係ありませんhapi.jsでプラグインの登録順をありがとうございました。ただし、依存関係の問題や、プラグインが登録された後にコードを実行する必要がある場合は、プラグインを特定の順序で宣言する必要があります。ここで

このコールバックを要求する例を次に示します。

server.register(require('hapi-auth-jwt'), err => { 
if (err) { 
    console.log(err); 
    return null; 
} 
server.auth.strategy('token', 'jwt', { 

    key: process.env.JWT_SECRET, 

    verifyOptions: { 
    algorithms: ['HS256'] 
    } 
}); 
server.register(/*other plugins*/) 
} 

また、プラグインの登録機能は非同期であることができることを覚えておいてください((次を呼び出すことによって)いつでも好きなときに)

HAPIのアーキテクチャがあります表現とは非常に異なっています。レイヤー(ミドルウェア)の代わりにブロック(プラグイン)として見ることができます。コード "コンフィギュレーションオーバーコード"も同様です。

関連する問題