When handling a file upload with req.file, what does it mean if req.file is undefined?

4 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "The request did not contain a file". Khi gắn upload.single('avatar') vào route, multer chỉ tạo đối tượng req.file nếu request multipart thật sự có một tệp trong trường avatar; không có tệp nào được gửi thì multer vẫn cho request đi tiếp và req.file là undefined, nên route nên kiểm tra điều này để trả lỗi 400. "The file was uploaded successfully" ngược lại: tải lên thành công thì req.file là một đối tượng có fieldname, originalname, mimetype, size và path hoặc buffer. "The file is too large" sai vì vượt limits.fileSize khiến multer gọi next với MulterError mã LIMIT_FILE_SIZE, request chuyển sang middleware xử lý lỗi chứ không tới route với req.file undefined. "The server rejected the file type" thường được làm trong fileFilter bằng cách trả về lỗi; nếu fileFilter chỉ gọi callback với false thì tệp bị bỏ qua và req.file cũng undefined, nhưng đó là trường hợp do chính lập trình viên cấu hình, còn ý nghĩa trực tiếp của req.file undefined là không có tệp đi kèm request.

Cùng chương 9

Xuất hiện trong 1 bộ đề