NodeJS Multer next()函数不是函数

nnsrf1az  于 2022-11-22  发布在  Node.js
关注(0)|答案(1)|浏览(158)

我开发这个服务器的基础上,这个教程,https://www.bezkoder.com/angular-12-node-js-express-mysql/现在我需要添加一些文件上传功能,使用Multer.但每次我尝试使用它,我得到这个错误:

/home/miguel/Documents/angular_projs/examples/server/node_modules/multer/lib/make-middleware.js:45
      next(err)
      ^

TypeError: next is not a function
    at done (/home/miguel/Documents/angular_projs/examples/server/node_modules/multer/lib/make-middleware.js:45:7)

当我在这里使用它时:

//File upload configuration
const maxSize = 2 * 1024 * 1024;

let storage = multer.diskStorage({
  destination: (req, file, cb) => {
    cb(null, "/resources/static/assets/uploads/");
  },
  filename: (req, file, cb) => {
    console.log(file.originalname);
    cb(null, file.originalname);
  },
});

let uploadFile = multer({
  storage: storage,
  limits: { fileSize: maxSize },
}).single("file");

/* ---------------------------------------------------------------------------------------------------- */
//Upload Files 
exports.file_upload = async (req, res) => {
    let number = req.params.number;

    try {
        await uploadFile(req, res);
    
        if (req.file == undefined) {
          return res.status(400).send({ message: "Please upload a file!" });
        }
    
        res.status(200).send({
          message: "Uploaded the file successfully: " + req.file.originalname,
        });
      } catch (err) {
        if (err.code == "LIMIT_FILE_SIZE") {
          return res.status(500).send({
            message: "File size cannot be larger than 2MB!",
          });
        }
    
        res.status(500).send({
          message: `Could not upload the file: ${req.file.originalname}. ${err}`,
        });
      }
    //Check if empty
    //res.status(200).json({msg:`${s03}`});

    };

我已经检查了其他教程,它应该工作

smdncfj3

smdncfj31#

尝试传入next做为参数。

...
exports.file_upload = async (req, res, next) => {
let number = req.params.number;

try {
    await uploadFile(req, res, next);
...

相关问题