@kuronokey

Как при использовании Multer в node.js поймать ошибки?

Подскажите, пожалуйста.

Согласно документации multer
limits - Объект, устанавливающий ограничения. Multer прокидывает этот объект напрямую в busboy, поэтому детали можно посмотреть на странице с методами busboy.

Я поставил лимит на 1 мб, когда грузится файл большего размера - идёт throw error в этот busboy, и node.js отсылает клиенту большую страницу с ошибкой.

Как мне при возникновении этого исключения на размере файла поймать ошибку, что бы свой текст отсылать?

'use strict';

const express = require("express");
const multer  = require("multer");
const fs = require("fs");
  
const app = express();

const storageConfig = multer.diskStorage({
    destination: (req, file, cb) =>{
        cb(null, "uploads");
    },
    filename: (req, file, cb) =>{
        cb(null, file.originalname);
    }
});

const myfilelimits = {fileSize : 1048576};
  
app.use(express.static(__dirname));
var myupload = multer({storage:storageConfig, limits: myfilelimits}).single("file")
app.use(myupload);

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});


app.post("/upload", function (req, res, next) {
   
    let filedata = req.file;
    console.log(filedata);
	
    if(!filedata) {
        res.send("Ошибка при загрузке файла");
	} 
    else {
       // res.send("Файл загружен");
   filedata.uploadok = 'ok'
			res.send (filedata)
	}
			
		  myupload(req, res, function (err) {
    if (err instanceof multer.MulterError) {
      // Случилась ошибка Multer при загрузке.
	  console.log('Случилась ошибка Multer при загрузке.');
    } else {
      // При загрузке произошла неизвестная ошибка.
	  console.log('При загрузке произошла неизвестная ошибка.');
    }

    // Все прекрасно загрузилось.
	console.log('Все прекрасно загрузилось');
  })
		
			
			
			
});
  • Вопрос задан
  • 24 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы