問題タブ [hapijs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - プラグインへの Hapi.js サブドメイン ルーティング
異なるサブドメインを異なるプラグインにルーティングする方法を探しています。API docsを調べましたが、役立つものは何も見つかりませんでした。
javascript - Joi を Hapi で使用する場合、1 つのセットアップで 1 つのキーを要求し、他のすべてのキーを許可するにはどうすればよいですか?
Hapiハンドラーに入ってくる JSON オブジェクトのJoi検証を作成しようとしています。これまでのところ、コードは次のようになります。
これまでのJoiオブジェクトの検証は、上記の config: validate: code セクションで確認できます。入ってくる JSON は次のようになります。
上記の JSON では、オブジェクトのルートにあるキーと値が必要であり、呼び出されるセクションids_lot_args
が必要です。peripheral_data で始まるセクションは、そこにあるかどうか、または他の JSON ペイロードである可能性があります。重要ではありません。ルート レベルと値内のキーと値のみids_lot_args
が必要です。
これまでのところ、私はJoi検証を機能させようとしてつまずいています。 これをどのようにセットアップする必要があるかについてのアイデアはありますか? Joi のコード リポジトリはhttps://github.com/hapijs/joiにあります。これまでのところ、オブジェクトのすべての関数を許可しようとしても役に立ちませんでした。
javascript - Hapi.js フレームワークを使用した複数のサーバー インスタンス
いくつかの理由から、node.js のこのフレームワークに近づいています。シンプルさ、優れたモジュール性、箱から出してすぐに使える素早い設定。Express.jsフレームワークを学んでいるうちに、見たことのないパックの概念にすぐに出会いました。公式ガイドからの次の例:
彼らはパックについて次のように述べています。
パックは、hapi が複数のサーバーを 1 つのユニットに結合する方法であり、プラグインを操作するときに統一されたインターフェイスを提供するように設計されています。
この概念は私にとって奇妙です。プロジェクト内で異なるサーバーを何回使用しますか? さらに、hapi にプラグインを登録するたびに pack を呼び出す必要があるかどうかは明確ではありません。
更新:これは v8 より前の API コードで、プラグインの登録方法が変更されました。register
( で直接呼び出しますserver
)
javascript - 公開される前にモジュールを必要とするノードが undefined を引き起こしている
私は最終的に、コントローラーからdaoにhapiオブジェクトを介して渡さなくてもhapiサーバープラグインにアクセスできるようvar server = require('../../index.js');
に、自分のファイルでrequireしようとしています。foo-dao.js
request
この問題は、ファイルの先頭で index.js を要求しようとすると、foo-dao.js メソッドのコメントで確認できます。
問題は、私の index.js では、./modules/foo/foo-routes.js を必要とする ./modules/foo/foo-ctrl.js を必要とする ./modules フォルダーが必要であるためだと思います。 ./modules/foo/foo-dao.js.
これは、require の簡略化されたビジュアルです。
./modules/index.js -> ./modules/foo/foo-routes.js -> ./modules/foo/foo-ctrl.js -> ./modules/foo/foo-dao.js -> ./ modules/index.js <-- INDEX.JS のサーバー変数がまだ公開されていないため、ここに問題があります。
/hapi/index.js
/hapi/modules/foo/foo-routes.js
/hapi/modules/foo/foo-ctrl.js
/hapi/modules/foo/foo-dao.js
javascript - 認証後のYahoo APIの問題
しばらくの間、これに対する答えを探していましたが、答えが見つからないようです。私はいくつかのことを試しましたが、そのすべてをここにリストします。うまくいけば、誰かが私を正しい方向に向けることができます.
まず、Hapi フレームワークを使用して単純な Node アプリを作成しました。さらに、同じく Hapi の Bell ライブラリを使用して Yahoo で認証し、hapi-auth-cookie を使用してセッションを認証結果に設定しています。これは、私が知る限り、完全に機能しています。
Bell は、ユーザーが認証されると、トークンとシークレットを提供してくれます。
トークンは次のようになります。
シークレットは次のようになります。
したがって、認証してホームページにリダイレクトされると、これら 2 つがあり、Cookie が設定されます。私はロールの準備ができていると理解しています。次に、次の URL を使用して Yahoo API にアクセスしようとします。
この URL へのアクセスに対する応答は次のとおりです。
ヒットしようとしている URL は明らかに不完全です。ただし、必要なパラメーターが何であるかはわかりません。私は Yahoo ドキュメントに 1000 回アクセスしましたが、この具体的な答えが見つからないようです。そこにあるすべての例は、主に認証ビットに関連しています。そこで、運が良ければ、URL でトークンとシークレットを渡そうとしました。これでは、API URL + トークン + シークレット + 署名を試しました。私が使用しているトークンとシークレットは、上記で参照されている Bell によって提供されたものです。
これで、トークンが拒否されたことがわかります。
また、最初に署名なしで試してみましたが、その場合、エラーは署名がないことを示しています。
ここで何か助けていただければ幸いです。過去 1 週間の検索から、Yahoo API は最も簡単に操作できるものではないことがわかりました。必要な情報がすべて含まれていることを願っています、ありがとう!!
node.js - クエリリクエストの場合のパスの構造は?
私はhapi.jsを使用していますが、1つのことが明確ではありません。パスでパラメーターを渡す API 要求を作成する場合、ハンドラーで request.params を呼び出すことでこれらを取得できます。クエリの形式でリクエストを行う場合、パスはどうすればよいですか? 最初のケースでは、path プロパティに /{param} のようなものを配置しましたが、2 番目のケースでは?
javascript - hapijs プラグインを作成するか、server.ext を使用してヘッダーの API キーをスクリーニングする必要がありますか?
したがって、hapi rest api へのすべての http ルートで有効な api キーを確認したいと思います。APIトークンチェックに加えて、いくつかのルートで基本認証も行うため、認証プラグインを使用したくありません。私はエクスプレスでミドルウェアとしてこれを行うことに慣れていますが、hapi で正しい方法は何ですか?
これを実現するには、独自のプラグインを作成するか、代わりに server.ext を使用する必要がありますか?それとも、別の方法で行う必要がありますか?
これまでのところ、これは私がやった方法です
javascript - Good を使用した Hapi.js でのリクエストとレスポンスのペイロードのロギング
Hapi.js を使用して、モバイル アプリケーション用の RESTful API を実装しています。リクエスト、エラー、およびその他のイベントをログに記録するために Good を統合しました。それは私にとって非常にうまく機能します。ただし、リクエストとレスポンスのペイロード (JSON オブジェクト) をログに記録する方法は明確ではありません。
助けていただければ幸いです。