問題: フロントエンド axios がアップロードするデータが多すぎると、node.js (express) のバックエンドがエラーを報告するか、ステータスをキャンセルします。
フロントエンドのポスト リクエスト ボディは非常に大きく、node.js (エクスプレス) バックエンドのデフォルト ポストは 2MB/1MB であるため、リクエスト ボディのサイズ制限を設定する必要があります。
app.use(express.json({
limit: '50mb'}));
app.use(express.urlencoded({
limit: '50mb',
extended: true,
}));
セットアップ後、別の問題が発生し、具体的な状況は報告されていませんでしたが、写真を見ると MYSQL の問題の大きさがわかります。
Error: read ECONNRESET
at TCP.onStreamRead (internal/stream_base_commons.js:209:20)
--------------------
at Protocol._enqueue (E:\Desktop\nodeProject\baker-mood\node_modules\mysql\lib\protocol\Protocol.js:144:48)
at PoolConnection.query (E:\Desktop\nodeProject\baker-mood\node_modules\mysql\lib\Connection.js:198:25)
at E:\Desktop\nodeProject\baker-mood\router\methods\MoodMethodes.js:23:25
at Handshake.onConnect (E:\Desktop\nodeProject\baker-mood\node_modules\mysql\lib\Pool.js:64:7)
at Handshake.<anonymous> (E:\Desktop\nodeProject\baker-mood\node_modules\mysql\lib\Connection.js:526:10)
at Handshake._callback (E:\Desktop\nodeProject\baker-mood\node_modules\mysql\lib\Connection.js:488:16)
at Handshake.Sequence.end (E:\Desktop\nodeProject\baker-mood\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24)
at Handshake.Sequence.OkPacket (E:\Desktop\nodeProject\baker-mood\node_modules\mysql\lib\protocol\sequences\Sequence.js:92:8)
at Protocol._parsePacket (E:\Desktop\nodeProject\baker-mood\node_modules\mysql\lib\protocol\Protocol.js:291:23)
at Parser._parsePacket (E:\Desktop\nodeProject\baker-mood\node_modules\mysql\lib\protocol\Parser.js:433:10) {
errno: -4077,
code: 'ECONNRESET',
syscall: 'read',
fatal: true
}
Error: read ECONNRESET
さまざまな拷問と調査の後、制限サイズをアップロードするためのパラメーターもあるデータベース MYSQL であり、これにより、大きすぎるデータのアップロードが失敗し、エラーが報告されます.具体的には、.ini ファイルでアップロード制限サイズを構成します.
この構成ファイルを無駄に変更したので、cmd メソッドを選択してセットアップし、データベース サービスを再起動しました。
データベースに入るコマンド
mysql -hlocalhost -uroot -p
次に、次のコマンドを入力して、データベースのアップロード制限サイズを表示します
show VARIABLES like '%max_allowed_packet%';
50MB に変更したパラメーターは次のとおりです. デフォルト値は 1,048,576 である必要があります.つまり、アップロード制限を設定して
1MB を 50MB に制限し、cmd を再起動して上記の show コマンドを実行し、mysql サービスを再起動します.set global max_allowed_packet = 5*1024*1024*10