フロントエンド axios が大きすぎるデータをアップロードすると、node.js バックエンドがエラーを報告するか、ステータス マイニング ピットをキャンセルします errno-4077

問題: フロントエンド 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

おすすめ

転載: blog.csdn.net/weixin_44000173/article/details/120527940