I’m encountering an error when I try to upload an image to my server running at http://localhost:8080/upload.This error only occurs when I use the diskStorage()
function from Multer to specify a destination for the uploaded files.
For some reason, using the simpler multer({dest: './uploads'})
configuration works without any issues. I’d like to understand why diskStorage()
is causing this error.
Error:
Error: ENOENT: no such file or directory, open 'uploads/file-1720419517466-949551950'
Code:
const express = require("express");
const multer = require("multer");
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './uploads');
},
filename: function (req, file, cb) {
const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9);
cb(null, file.fieldname + '-' + uniqueSuffix);
}
});
const upload = multer({storage: storage});
const app = express();
app.get("/", (req, res) => {
res.send(`
<h1>OK</h1>
`);
});
app.post("/upload", upload.single("file"), (req, res) => {
res.json({
data: "Upload successful"
});
});
app.listen(8080, () => {
console.log("listening on port 8080...");
});