У меня есть экспресс-сервер, который я создал с помощью express-generator , и настройте его, следуя одному из тысяч доступных онлайн-руководств. Что касается экспресс-серверов, то это совершенно не заметно. Когда я отправляю POST-запрос от Postman или из моего приложения React, он берет тело и помещает его в базу данных, а затем отправляет ответ в точности так, как я ожидаю.
Проблема возникает, когда я пытаюсь отправить ему запрос POST с микроконтроллера через модем 4G, используя AT-команды. Это значительно медленнее, чем браузер, и включает задержку в несколько миллисекунд между заголовком и телом. Во время этой задержки вместо ожидания тела POST сервер отправляет ответ и отправляет ответ, как если бы тело было пустым.
Сначала проблема, казалось, была с модемом или прошивкой, но я смог сузить его до сервера, отправляя запросы POST на другой сервер. Я сделал POST для API dweet.io и заметил, что после того, как модем передал заголовок, он просидел несколько секунд, чтобы позволить микроконтроллеру загрузить тело.
Такое ощущение, что это как-то связано с настройкой тайм-аута в экспрессе, но единственное, что я могу найти в этом отделе, это server.timeout , который, как я подтвердил, равен 120000. Есть ли настройки или промежуточное ПО, которое я мог бы использовать, чтобы заставить сервер охлаждаться и ждать тела?