2017-08-15 21 views
1

私はReact/ReduxフロントエンドにExpressバックエンドアプリケーションを使用しましたが、私はむしろ新しいですが、データの流れにどう対処するかに関する質問があります。React/ReduxとExpressを使用したデータフロー

私のフロントエンド側には、検索バーがあります。ユーザーが検索語を入力すると、Express routes.jsファイルで処理されるReactからの投稿要求が送信されました。このファイルでは、私はその検索語を取っています。私はMongoデータベースでその用語を探しています。その後、データベース内にその用語が見つかった場合、オブジェクトを送り返します。

私はいくつかのデータをオフ引くために、特定のルートにHTTP要求を行うために、この出願においてaxiosを使用しているが、それは明示側app.get(...)内であり、Iは、検索に反応側axios.get(...)を使用情報。

ただし、データが2方向に流れるため、この状況は少し異なります。最初は、フロントエンドからバックエンドに、次にバックエンドからフロントエンドまでです。この場合、私はapp.post(...)を使用しています。

私の質問はです。どのようにデータをフロントエンドに取り込みますか? app.post(...)axios.get(...)を実行するだけでいいですか、これを行うには別の方法がありますか?

答えて

0

ブラウザからバックエンドのルートに移動してPOSTに応答するように実装されている場合は、おそらく405エラーが発生します。 POST Axios要求とPOST Express応答を実装します。

+0

私はAxiosの投稿リクエストを参照しましたが、以前の投稿リクエストからデータを取得するだけのデータは投稿していません。私は、最初の議論では、何らかの種類のオブジェクトを投稿要求として送信したいと考えています。しかし、私はそれを望んでいません – Phillip

+0

"以前の要求"からサーバーからデータを取得することはできません。なぜこのデータをクライアント側に保存しないのですか? – MaDa

+0

それはまさに私の問題です。私は何をしているのか誤解していると思う。どのように私のエクスプレスポストルートから、私のクライアント側に反応するデータを取得するのですか? – Phillip

0

GETまたはPOSTのいずれかを使用できますが、サーバー側とクライアント側で一貫している必要があります。クライアントからhttp GETを実行すると、サーバールートとしてapp.get(...)がある場合にのみサーバーが応答します。

データの流れに関する限り、getとpostの両方がデータを返すことができます。高速ルートで指定する必要があります。

mongoにキーが存在するかどうかを調べるビジネスロジックのあとに、res.send({'found': true})またはres.json({'found': false})のようにします。これにより、データがクライアントに確実に戻されます。

+0

はい、私は一度res.send()後のリクエストルートにデータを。私はどのようにクライアント側でそのルートを取得するつもりです。 Axios.get()は同じ方法で動作しませんか?しかし、axios.post()もありますが、もうデータを投稿したくありません。最初の引数は私が考えるオブジェクトです。 – Phillip

+0

@PhillipR自動的に行われます。 .catch(関数(;あなたが約束を使用している場合には、 'axios.get( '/用語/ wordimlookingfor') .then(機能(応答){ にconsole.log(レスポンス)})のようになります。エラー){ console.log(エラー); }); ' ' then'はexpressからの応答を含みます。 – skellertor

関連する問題