无法使用 Multer 上传多张图片

时间:2021-03-29 11:02:21

标签: node.js mongodb multer mern

我正在制作一个注册页面,我会在其中要求用户上传 2 张图片,并将它们存储在不同的位置。

我猜这个问题是因为 Maulter。

这是我的路由器

 router.post('/verification', fileUpload.fields([{
               name: 'aadhar', maxCount: 1},{
                name: 'profile_pic', maxCount: 1}]),
               service_controller_stage1.step2_verification);

这是我的 Multer 文件:

const multer = require('multer');


const MIME_TYPE_MAP = {
   'image/png': 'png',
   'image/jpeg': 'jpeg',
   'image/jpg': 'jpg'
};

 const fileUpload = multer({
    limits: 500000,
   storage: multer.diskStorage({
   destination: (req, file, cb) => {
  if (file.fieldname === "aadhar") { // if uploading resume
    cb(null, 'uploads/aadhar');
   } else { // else uploading image
     cb(null, 'uploads/DP');
      }
   },
filename: (req, file, cb) => {
  const ext = MIME_TYPE_MAP[file.mimetype];
  cb(null, file.fieldname + '-' + Date.now());
  }
 }),
   fileFilter: (req, file, cb) => {
   const isValid = !!MIME_TYPE_MAP[file.mimetype];
 let error = isValid ? null : new Error('Invalid mime type!');
  cb(error, isValid);
}
});

  module.exports = fileUpload;

这是我的 MongoSchema

const mongoose = require('mongoose');
     const schema =  mongoose.Schema;
      const building_material_schema = new schema({
           image: { type: String, required: true },
 
    });

     module.exports = mongoose.model('Building_material',building_material_schema);
This is my Function in the controller



 const step2_verification  = async (req,res,next)=>{
  
    console.log(req.file.path);

   
     };

{控制台只能看到不工作的输出} 我将使用模式在这里保存图像。 我的错误

RangeError [ERR_HTTP_INVALID_STATUS_CODE]: Invalid status code: LIMIT_UNEXPECTED_FILE
    at ServerResponse.writeHead (_http_server.js:253:11)
    at ServerResponse._implicitHeader (_http_server.js:244:8)
    at write_ (_http_outgoing.js:674:9)
    at ServerResponse.end (_http_outgoing.js:787:5)
    at ServerResponse.send (D:\1ST ASSIGNMENT\try\k\backend\node_modules\express\lib\response.js:221:10)
    at ServerResponse.json (D:\1ST ASSIGNMENT\try\k\backend\node_modules\express\lib\response.js:267:15)
    at D:\1ST ASSIGNMENT\try\k\backend\app.js:30:9
    at Layer.handle_error (D:\1ST ASSIGNMENT\try\k\backend\node_modules\express\lib\router\layer.js:71:5)
    at trim_prefix (D:\1ST ASSIGNMENT\try\k\backend\node_modules\express\lib\router\index.js:315:13)
    at D:\1ST ASSIGNMENT\try\k\backend\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (D:\1ST ASSIGNMENT\try\k\backend\node_modules\express\lib\router\index.js:335:12)
    at next (D:\1ST ASSIGNMENT\try\k\backend\node_modules\express\lib\router\index.js:275:10)
    at Layer.handle_error (D:\1ST ASSIGNMENT\try\k\backend\node_modules\express\lib\router\layer.js:67:12)
    at trim_prefix (D:\1ST ASSIGNMENT\try\k\backend\node_modules\express\lib\router\index.js:315:13)
    at D:\1ST ASSIGNMENT\try\k\backend\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (D:\1ST ASSIGNMENT\try\k\backend\node_modules\express\lib\router\index.js:335:12)
`

0 个答案:

没有答案