#node.js #file-upload #multer #connection-reset
#node.js #загрузка файла #многократный #подключение-сброс
Вопрос:
Я пишу веб-приложение, которое позволяет пользователю загружать очень большой файл (до ГБ). Мой технический стек включает в себя: nodejs, express, multer и чистый html. Это отлично работает для небольшого файла. Но когда я загружаю большой файл (127 МБ), я получил ошибку ERR_CONNECTION_RESET после некоторого ожидания (около 2 минут).
Я пробовал увеличить время отклика на сервере, используя как req.setTimeout, так и res.setTimeout, но это не помогло. Возможно, это связано с тем, что интерфейс слишком долго ожидает получения ответа.
Ниже приведена ошибка, которую я получил:
Спасибо вам всем.
Ответ №1:
Увеличение res
времени ожидания для соответствующего маршрута загрузки определенно должно сработать. Попробуйте сделать это следующим образом:
function extendTimeout (req, res, next) {
// adjust the value for the timeout, here it's set to 3 minutes
res.setTimeout(180000, () => { // you can handle the timeout error here })
next();
})
app.post('/your-upload-route', extendTimeout, upload.single('your-file'), (req, res, next) => {
// handle file upload
})
Комментарии:
1. Я уже пробовал res.setTimeout и req.setTimeout, но это не сработало. Я думаю, что интерфейс хочет услышать какой-то ответ в короткие сроки, а не ждать, пока файл будет загружен.
2. Вы пробовали это так? Если да, то вам, вероятно, необходимо настроить время ожидания запроса в клиенте.
3. Я пытался использовать axios во внешнем интерфейсе, но это все равно не сработало.
4. Можете ли вы добавить свой код и показать, как вы устанавливаете время ожидания в узле и на стороне клиента?