問題タブ [dart-shelf]
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.
dart - shell_web_socket を使用して、同じポートで http および ws リクエストをリッスンするにはどうすればよいですか
https://pub.dartlang.org/packages/shelf_web_socketはこの例を示しています
これを HTTP サーバーの初期化と組み合わせる方法を知りたい
wsHandler
が WebSocket 接続のために呼び出され、handler
(可能な場合は同じポートで) HTTP 要求を処理し続け、可能な場合は構成された認証とセッション管理を使用するために行う必要があること。
別のポートで試してみましたが、認証/セッションミドルウェアを使用しました (これを一緒に使用する必要があるかどうかはわかりません)。
そして得た
dart - 各リクエストにデフォルトのヘッダーを追加するミドルウェアを作成/追加する方法
各リクエストにデフォルトの HTTP ヘッダーを追加するシェルフ パイプラインにミドルウェアを追加するにはどうすればよいですか?
dart - Dart とシェルフで動的ページと静的ページの両方を提供する方法は?
Dartを使用shelf_static
して静的な Web ページを提供することは問題ありません。
shelf_route
動的な Web ページには罰金を使用できます。
しかし、静的ハンドラーを動的バージョンに追加するのに苦労しています。私が試したことは次のとおりです。
また ...
また ...
要求すると、指定されたデフォルトhome.html
ページが表示されますhttp://localhost:8080/
が、既存のページhttp://localhost:8080/home.html
を明示的に要求すると、Not Found が表示されます。
でこれをやろうとしてもいけませんshelf_static
か?そうでない場合、正しいアプローチは何ですか?ありがとう!
dart - shell_auth ライブラリを使用して確立されたセッションを検証するにはどうすればよいですか?
ユーザー名/パスワードの資格情報を受け入れ、それらを検証し、特定のルートへのアクセスに使用するクライアント用の JWT トークンを作成する単純なサーバーを作成しようとしています。サーバー側でクライアントの JWT を受信して検証するまで、すべてを行うことができます。
おそらく単純なものが欠けていることはわかっていますが、defaultAuthMiddleware を作成する authenticate() 関数の最初のパラメーターに何らかのハンドラーが必要なようです。私は何が欠けていますか?
dart - ダーツ シェルフの静的ファイル ハンドラーからポリマー アプリケーションを提供する方法は?
シェルフ静的サーバーを使用してポリマー アプリケーションを提供しようとしています。次の構造を作成します。
server.dart 内に次のコードを配置します。
残りはダーツエディタで作成したテンプレートポリマーアプリケーションです。
問題は、ブラウザーから localhost:9999 にアクセスしようとすると、次のエラーが表示されることです。
より迅速な開発方法のためにこれを行いたいと思います。その場合、変更を加えるたびに Polymer-Dart アプリケーションをビルドする必要はありません。
dart - AngularDart 変換/デプロイ
フロントエンドにAngular、バックエンドにShelfを使用して、Dartでクライアント/サーバーアプリを構築しています。を実行するpub build
と、期待どおりに Dart ファイルの JavaScript が生成されますが、HTML ファイルの Dart 参照が置き換えられません。したがって、私の index.html には、次のスクリプト参照があります。
これにより、アプリケーションが正しく読み込まれません。手動で変更すると
私のアプリケーションは期待どおりに動作します。私の質問は、これを自動的に行うようにパブビルドを構成する方法はありますか? それとも、dart ファイルの参照を JS 参照に置き換えることは想定されていませんか? もしそうなら、基本的なサーバーを構築するにはどうすればよいですか?
dart - Redstone/Shelf を使用した Dart でのテキストのストリーミング
プロセスの最後に文字列のリスト全体を返すのではなく、それぞれがデータベース クエリの要素を表す文字列をストリーミングする方が理にかなっていると思いました。これにより、ブラウザーで最初の結果が早く得られる可能性があります。だから私はこれをRedstone
which usesで実装しようとしましたShelf
。これが私の基本的なテストです
いくつかのコンテキストのために、リンクされた人たちは、Facebook から取得したパターンで「テキストストリーミング」を使用して、ページの一部をすばやくレンダリングし、後者を (利用可能な場合) 挿入します。これを Playframework (Scala) で実装し、使用しますEnumerables
Dart ストリームと同じように動作するように見えます。このビデオで見ることができます。
私のコードの問題は、 1秒後と10 秒"hello"
後に表示されることを期待していたことです。私が得るのは、11 秒待ってから完全なテキストです。ご覧のとおり、aで応答しています。ここで、それぞれは、元のストリームからの文字列をバイトに変換したものです。"chao"
Shelf.Response
Stream<List<int>>
List<int>
これはシェルフの問題/機能ですか、それともレッドストーンが応答をいじって未来に変換していますか? 回避策はありますか?
編集
手に入れたいもの
1秒間何もありません。
1秒後
11秒後
私が本当に得るもの
1秒間何もありません。
11秒後
http - Dart with Shelf で複数の set-cookie ヘッダーを設定する
Shelf に複数の「set-cookie」ヘッダーを設定する必要がありますが、ヘッダーは であるMap<String,String>
ため、キーが一意であるため、2 番目のヘッダーを設定すると最初のヘッダーが置き換えられます。Dartでこれを解決するにはどうすればよいですか?
dart - Dart シェルフと rpc パッケージ間の非互換性? ('access-control-request-method' ヘッダー)
shell パッケージと rpc パッケージの間には互換性がないようです。
rpc [0.4.1] config/api.dart では: handleHttpOptionsRequest は、'access-control-request-method' ヘッダーがリストであることを想定しています。
シェルフ [0.5.7] パッケージを使用する場合、このメソッドに渡される ParsedHttpApiRequest には、文字列である「access-control-request-method」ヘッダーが含まれます。
これにより例外が生成されます...
dart.io HttpServer で rpc を使用する場合、コードは正常に動作し、ParsedHttpApiRequest には「access-control-request-method」ヘッダーの値として文字列のリスト (要素が 1 つ) があります。
dart rpc + shell をうまく使っている人はいますか? もしそうなら、例外を回避する方法について何か考えはありますか?
=== [更新] rpc の修正後、前述の問題は修正されたようです。ありがとうございます!別の問題が発生しましたが、まだ詳しく調査していません。スタック トレースは次のとおりです。
シェルフ [0.5.7] shell_rpc [0.0.3] rpc [0.4.2]:
=> dart rpc と shell (shelf_rpc を使用) を実行すると、(文字列ではなく) リストであるヘッダーに関連する非互換性が表示されます
dart - リストである(文字列ではない)ヘッダーに関連するdart rpcおよびshelf(shelf_rpcを使用)を実行するときの非互換性
(文字列ではなく) リストであるヘッダーに関連する dart rpc および shell (shelf_rpc を使用) を実行するときの非互換性。
(文字列ではなく) リストであるヘッダーに関連する dart rpc と shell (shelf_rpc を使用) を実行すると、非互換性があるようです。
スローされるエラーは (shelf[0.5.7]、shelf_rpc[0.0.3]、rpc[0.4.2]: の場合):
この問題を回避するには、shelf_rpc.dart を変更してリストを文字列に置き換えます。
出力: