web-dev-qa-db-ja.com

反応アプリを作成するためのプロキシサーバーを設定する

create-react-app を使用して反応アプリケーションを開始し、npm run ejectスクリプトを使用して、すべてのファイルにアクセスします。その後、Expressをインストールして作成しましたserver.jsと同じレベルにあるファイルpackage.jsonファイル

これらは server.jsファイルの内容:

const express = require('express');
const app = express;

app.set('port', 3031);

if(process.env.NODE_ENV === 'production') {
  app.use(express.static('build'));
}

app.listen(app.get('port'), () => {
  console.log(`Server started at: http://localhost:${app.get('port')}/`);
})

ここでは何もクレイジーではありません。シークレットを使用する必要があり、自分のAPIを公開したくないので、将来のAPIプロキシを設定するだけです。

この後、"proxy": "http://localhost:3001/" わたしの package.jsonファイル。サーバーを正しく起動し、これを使用する方法を理解する必要があるので、今は行き詰まっていますserver.jsファイルは開発モードで、その後本番環境で使用します。

理想的には、複数のプロキシ、つまり/apiおよび/api2

9
Ilja

Server.jsを実行するためにイジェクトする必要はありませんでした。 node server.jscreate-react-appを組み合わせて実行するだけです。

取り出して開発サーバーを起動した後でも、npm startを実行できます。

/api1/api2を実行するには、server.jsファイルで処理するだけで問題なく機能します。 server.jsportpackage.json内のproxy設定の1つを一致させる必要があります-この場合、"proxy": "http://localhost:3031"である必要があります

6
jpdelatorre