Multer is a node.js middleware for handling multipart/form-data, which is primarily used for uploading files.
npm install multer
npm install sharp
npm install uuid
app.post('/uploadAvatar', (req, res) => {
res.redirect('/')
});
<form method="post" action="/uploadAvatar" enctype="multipart/form-data">
<div class="form-group">
<label class="text_small" for="avatar">Avatar</label>
<input id="uploadAvatar" type="file" name="avatar">
</div>
<input type="submit" value="Upload">
</form>
import multer from "multer";
app.post('/uploadAvatar', multer().single('avatar'), (req, res) => {
res.redirect('/')
});
import multer from "multer";
import { saveAvatar } from "./middleware/saveAvatar.js";
app.post('/uploadAvatar', multer().single('avatar'), saveAvatar, (req, res) => {
res.redirect('/')
});
import multer from "multer";
import { saveAvatar } from "./middleware/saveAvatar.js";
app.post('/uploadAvatar', multer().single('avatar'), saveAvatar, (req, res) => {
res.redirect('/')
});
if (file.mimetype == "image/png" ||
file.mimetype == "image/jpg" ||
file.mimetype == "image/jpeg") {
}
import sharp from "sharp"
import { v4 as uuidv4 } from 'uuid';
[...]
// // save the file with sharp
await sharp(file.buffer)
.resize(128, 128, {
// more about these options can be found on
// https://sharp.pixelplumbing.com/api-resize#resize
fit: sharp.fit.cover,
withoutEnlargement: true
})
.toFile(`${PUBLIC_PATH}/images/avatars/${uuidv4()}.${ext}`);
[...]