As I am making an REST API, I am stuck here where I need to upload photo. I have made a multer middleware :
<code>const multer = require("multer");
const currentDate = new Date()
let date = `${currentDate.getDate()}-${currentDate.getMonth()}-${currentDate.getFullYear()}`
let time = `${currentDate.getHours()}-${currentDate.getMinutes()}-${currentDate.getSeconds()}`;
const storage = multer.diskStorage({
destination: (req, file, callback) => {
callback(null, './images')
},
filename: (req, file, callback) => {
const ext = file.mimetype.split("/")[1];
callback(null, `${file.originalname}-${time}-${date}.${ext}`);
}
})
const upload = multer({ storage: storage })
module.exports = {upload:upload,date:date,time:time}
</code>
<code>const multer = require("multer");
const currentDate = new Date()
let date = `${currentDate.getDate()}-${currentDate.getMonth()}-${currentDate.getFullYear()}`
let time = `${currentDate.getHours()}-${currentDate.getMinutes()}-${currentDate.getSeconds()}`;
const storage = multer.diskStorage({
destination: (req, file, callback) => {
callback(null, './images')
},
filename: (req, file, callback) => {
const ext = file.mimetype.split("/")[1];
callback(null, `${file.originalname}-${time}-${date}.${ext}`);
}
})
const upload = multer({ storage: storage })
module.exports = {upload:upload,date:date,time:time}
</code>
const multer = require("multer");
const currentDate = new Date()
let date = `${currentDate.getDate()}-${currentDate.getMonth()}-${currentDate.getFullYear()}`
let time = `${currentDate.getHours()}-${currentDate.getMinutes()}-${currentDate.getSeconds()}`;
const storage = multer.diskStorage({
destination: (req, file, callback) => {
callback(null, './images')
},
filename: (req, file, callback) => {
const ext = file.mimetype.split("/")[1];
callback(null, `${file.originalname}-${time}-${date}.${ext}`);
}
})
const upload = multer({ storage: storage })
module.exports = {upload:upload,date:date,time:time}
and an api route :
<code>const express = require("express");
const router = express.Router();
const { upload } = require("../../middleware/imageUploader");
router.post("/", upload.single('file'), async (req, res) => {
try {
console.log("File:", req.file);
console.log("Body:", req.body);
res.json({
file: req.file,
body: req.body,
});
} catch (err) {
console.error("Error:", err);
res.status(500).json(err);
}
});
module.exports = router;
</code>
<code>const express = require("express");
const router = express.Router();
const { upload } = require("../../middleware/imageUploader");
router.post("/", upload.single('file'), async (req, res) => {
try {
console.log("File:", req.file);
console.log("Body:", req.body);
res.json({
file: req.file,
body: req.body,
});
} catch (err) {
console.error("Error:", err);
res.status(500).json(err);
}
});
module.exports = router;
</code>
const express = require("express");
const router = express.Router();
const { upload } = require("../../middleware/imageUploader");
router.post("/", upload.single('file'), async (req, res) => {
try {
console.log("File:", req.file);
console.log("Body:", req.body);
res.json({
file: req.file,
body: req.body,
});
} catch (err) {
console.error("Error:", err);
res.status(500).json(err);
}
});
module.exports = router;
when I am testing my API I only got my body as response. And req.file is showing undefined
1