4

私はダーツプログラミングに非常に慣れていないので、助けていただければ幸いです。

void main() {
  var server = new HttpServer();
  server.listen('127.0.0.1', 8080);
  server.
  addRequestHandler(
  accept(HttpRequest function) => acceptInput(request, response), handler);
 }

以下の関数をリクエストハンドラーに追加したいと思います。 server.addrequestHandler() これを実行して、WebSocket用のリクエストハンドラーを含む多くのリクエストハンドラーを追加できるようにします。サンプルまたはチュートリアルが非常に役立ちます。

簡単にするために、各ハンドラーを別々の関数に保持したいと思います。

void acceptInput(HttpRequest request,HttpResponse response){
  print(request.connectionInfo.toString());
  print(request.queryParameters.toString());
  response.outputStream.write('Hello dude'.charCodes);
  response.outputStream.close();
}

注:voidメインコードが間違っていることはわかっていますが、acceptInput関数が組み込まれるように修正するためのサポートが必要です。

4

3 に答える 3

3

実際、あなたは本当に近くにいます。

これを試して:

  var server = new HttpServer();
  server.addRequestHandler(
      (req) => req.path == '/save',
      handleSave);
  server.addRequestHandler(
      (req) => req.path == '/delete',
      handleDelete);
  server.defaultRequestHandler = new StaticFileHandler(basePath).onRequest;

ここhandleSaveで、handleDeleteは次のような単なる関数です。

handleSave(HttpRequest req, HttpResponse resp) {
  // ...
}
于 2012-12-05T05:51:54.760 に答える
1

ファイルを提供し、Webソケット接続を処理するWebサーバーのコードは次のとおりです。

https://github.com/dart-lang/web-components-code-lab/blob/master/step04/bin/chat_server.dart

それはあなたの質問に答えますか?

于 2012-12-05T00:31:22.433 に答える
1

読みやすいように単一のファイルに収まるExpressのようなWebフレームワークであるExpress.dartの実装を確認する必要があります。

HttpServerのドキュメントをチェックして、各メソッドの正しい署名を確認してください。これは、addRequestHandlerのAPIです。

abstract addRequestHandler(
    bool matcher(HttpRequest request), 
    void handler(HttpRequest request, HttpResponse response)
)

最初のパラメーターは、これが要求を処理するかどうかです。2番目の引数は、マッチャーがtrueの場合に要求を処理するハンドラーです。

したがって、DartのHttpアプリは次のようになります。

var server = new HttpServer();

server.addRequestHandler(
   (HttpRequest req) => true, 
   acceptInput);

server.listen('127.0.0.1', 8080);
于 2012-12-05T00:45:07.157 に答える