問題タブ [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.

0 投票する
1 に答える
1153 参照

node.js - Hapijs と Bell を twitter プロバイダーで使用します。Bell モジュールを使用して Twitter からの承認拒否を処理するにはどうすればよいですか?

Twitter プロバイダーと連携して、 BellモジュールでHapi フレームワーク (nodejs) を使用しています。

github ページに示されている例を使用して、動作するコードを取得するのは非常に簡単でした。/loginルートにアクセスすると、Twitter にリダイレクトされます。そこでアプリを承認すると、/login?oauth_token=xxxxxxx&oauth_verifier=xxxxxxxにリダイレクトされて、request.auth.credentials でユーザー プロファイルにアクセスできるようになります。 .

アプリを拒否しようとしたときに問題が発生しました。Twitterの「サインイン」ボタンをクリックする代わりに、「キャンセル」ボタンをクリックしてから、「サイト名に戻る」ボタンをクリックしました。この最後のボタンをクリックすると、/login?denied=xxxxxxにリダイレクトされます。次に、アプリを承認するために (再び) Twitter にリダイレクトされます。

同じページhttps://github.com/hapijs/bell#handling-errorsの別の例を使用してこのシナリオを処理しようとしましたが、うまくいきません。

request.auth をチェックする前に /login ルートを解釈して Twitter にリダイレクトしているようです。私はまだ Bell モジュールをよく理解していませんが、Twitter 戦略がrequest.params でoauth_tokenoauth_verifierを期待している可能性がありますが、拒否されたパラメーターは戦略によって解釈されないため、リダイレクトが発生します。

誰かがこのシナリオを処理できましたか?

0 投票する
1 に答える
293 参照

plugins - Hapijs crumb プラグインで未定義のクラムが表示される

プロジェクトで crumb プラグインを使用し て、プラグインとしてインポートしたトークンcrumb プラグインを取得しようとしています。ジェイドテンプレートでは、そのように取得します

しかし、値はundefinedです。なぜその値を取得するのですか? 設定を行う必要がありますか? 開発者の例によると、とても簡単に思えます

0 投票する
2 に答える
1981 参照

node.js - きめ細かな ACL / ユーザー権限のための Hapi と互換性のあるライブラリはありますか?

HapiJS を API サーバーとして使用することを検討しています。特定のモデル/リソースに対して、「ユーザー A はフィールド B を編集できます」「ユーザー C はフィールド D を表示できます」など、きめ細かなユーザー権限が必要です。

何かを構築する前に、Hapi と互換性のあるこのようなものが既に作成されているかどうかを確認していました。

0 投票する
2 に答える
410 参照

hapijs - coffeescriptでHapi.jsを使ってAPIを開発する方法

私はhapi.jsが初めてで、テストしてみます。Hapi.jsとcoffeescriptで開発できますか? コーヒースクリプトでhapi.jsをセットアップする方法の例を教えてください。

0 投票する
1 に答える
5457 参照

javascript - hapi サーバーでエラーが発生する

私は単純なログアプリを構築しており、コードを読みやすくするためにモジュール性を実装しようとしました。ただし、アプリを起動すると問題が発生します。私は 2 つのファイルindex.jsを持っています。ここにサーバー構成がroutes.jsあり、ルーティング ロジックがある場所があります。私がルートを書いた方法は、hapi apiにある API ドキュメントに従っています。

次のエラーが発生する理由を誰かが理解してくれることを願っています:

モジュールを正しくエクスポートしていませんか?

これが私のコードですroutes.js

そして、これは私のコードですindex.js:

0 投票する
1 に答える
2614 参照

database - フォームデータを取得するhapijs

をmydataから myに取得しようとしています。管理していないようです。を送信すると、が undefined として渡され、サーバーでエラーが発生します。私が理解していることから、データは自動的に解析されます。formhapijs serverformdatahapi

誰かが私が間違っていることを理解するのを手伝ってもらえますか? 未定義になるのはなぜですか?

フォームデータを扱う関数はsendworkout.

これらは私のルートです:

これは私のサーバーモジュールです:

これは私のhtmlフォームです:

0 投票する
1 に答える
155 参照

jquery - hapijs 自動インクリメント ペイロード インデックス

req.payload.reps + numberandのこの広範なリストを必要とせずに、スキーマに渡されたデータの数に応じてそれらの名前で自動インクリメントreq.payload.kilos + numberする単一のペアを持つように、次のように書くにはどうすればよいでしょうか?req.payload.reps - req.payload.kilos

また、カウンターを使用してフィールドのname属性をインクリメントしない場合、との値はデータベースに 2 つの配列として格納されます。後で対応する値を一致させる方が簡単ですか、それとも事前に尋ねたようにスキーマを設定する方が理にかなっていますか?inputrepskilos

req.payload.reps[i]たとえば、次のようなものがあります。そうすれば、ユーザーがこれらの入力フィールドに 10 未満の値を送信する場合、空のオブジェクトをデータベースに投稿せず、ユーザーはスキーマ形式を維持することで、必要な数の入力値を送信できます。

hapijsサーバー側で使用しています。

私のルーター機能:

inputフィールドのにカウンターを追加する私のjQuery name

そして私のHTML:

0 投票する
2 に答える
601 参照

node.js - ハンドルバーはヘルパー関数のサーバー データを取得します

responseクエリのサーバーをセットアップしており、応答データをレンダリングするためcouchbaseに使用したいと考えています。handlerbars

scriptヘルパー関数を別のファイルに入れ、html ファイルのタグに埋め込まないことがベスト プラクティスであることを理解しています。

data私の質問は、サーバーからの応答を hanldbars ヘルパー ファイルに渡して操作するためのベスト プラクティスまたはテクニックは何ですか?

hapijsサーバーとクライアントで使用しjQueryています。

0 投票する
5 に答える
20218 参照

javascript - レスポンスを送信する前にヘッダーを設定するhapi

hapi ハンドラーでは、ビューを送り返す前に、コードの早い段階で応答のヘッダーを設定しようとします。

メソッドを使用する必要がありますholdか? その場合、ビューをレンダリングするときに応答を再利用するにはどうすればよいですか?

ご協力いただきありがとうございます。

0 投票する
1 に答える
13884 参照

javascript - Hapijs と Joi: プレゼンス: 'forbidden' でクエリ パラメータを検証する

私の目標は、投稿のインデックスルートを作成することです。ユーザーはいくつかのクエリ パラメータ (つまり、タグ、タイプ) を指定できる必要がありますが、他のパラメータは指定できないはずです。明確にするために:

これは大丈夫です:

これは大丈夫ではありません:

これはhapiパックの設定です:

presence: forbiddenオプションに注意してください。

これはルート構成です:

type私の考えは、検証では、およびパラメーターのサブセットtags(空のクエリを含む) を許可する必要があるというものでした。ただし、許可されたリクエストを行った後、次のエラーが発生します。

何故ですか?もちろん、という名前のキーはありませんvalue。検証を希望どおりに動作させるにはどうすればよいですか?