I tryed to upload picture using javascript with multer but got the err : 'ERR_INVALID_ARG_TYPE' I didn't find any answer on this... Someone can help me ?
This is my code :
const UserModel = require("../models/user.model");
const { uploadErrors } = require("../utils/errors.utils");
const fs = require("fs");
const { promisify } = require("util");
const pipeline = promisify(require("stream").pipeline);
module.exports.uploadProfil = async (req, res) => {
const MIME_TYPES = {
"image/jpg": "jpg",
"image/jpeg": "jpg",
"image/png": "png",
};
try {
if (!MIME_TYPES) {
throw Error("invalid file");
}
if (req.file.size > 800000) throw Error("max size");
} catch (err) {
const errors = uploadErrors(err);
return res.status(201).json({ errors });
}
const fileName = req.body.name + ".jpg";
await pipeline(
req.file.stream,
fs.createWriteStream(
`${__dirname}/../client/public/uploads/profil/${fileName}`
)
);
try {
await UserModel.findByIdAndUpdate(
req.body.userId,
{ $set: { picture: "./uploads/profil/" + fileName } },
{ new: true, upsert: true, setDefaultsOnInsert: true },
(err, docs) => {
if (!err) return res.send(docs);
else return res.status(500).send({ message: err });
}
);
} catch (err) {
return res.status(500).send({ message: err });
}
};
And for my route, I have : "router.post("/upload", upload.single("file"), uploadController.uploadProfil);"