I am using sequelize and i have successfully uploaded a file to a folder and saved it's name in the database.Now i want to retrieve the image in postman.I am getting the name of the image when i use the get request.How to do I get the actual Image which has been stored in the uploads folder.
Below is my code.
middleware/upload.js
const multer = require("multer");
const imageFilter = (req, file, cb) => {
if (file.mimetype.startsWith("image")) {
cb(null, true);
} else {
cb("Please upload only images.", false);
}
};
var storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, "./uploads/");
},
filename: (req, file, cb) => {
let name = `${Date.now()}-Shehryar-${file.originalname}`
req.body.fingerPrints = name
cb(null,name);
},
});
var uploadFile = multer({ storage: storage, fileFilter: imageFilter });
module.exports = uploadFile;
route/user.js
const { Router } = require('express');
const user = require('../controllers/user.controller.js');
const upload = require("../middleware/upload");
const user_router = Router();
user_router.post('/createUsers',upload.single("fingerPrints"),user.create);
user_router.get('/getall', user.findAll);
user_router.get('/get/:code', user.findById);
user_router.put('/update/:code', user.update);
user_router.delete('/delete/:code', user.delete);
module.exports = user_router;
controller/user.js
exports.create = (req, res) => {
let codeGenerate = Math.random().toString(36).substring(2,7);
End_user.create({
code:codeGenerate,
firstName: req.body.firstName,
middleName: req.body.middleName,
lastName: req.body.lastName,
nickName: req.body.nickName,
email: req.body.email,
mobileNumber: req.body.mobileNumber,
bloodGroup:req.body.bloodGroup,
fatherName: req.body.fatherName,
motherName: req.body.motherName,
bForm: req.body.bForm,
fingerPrint: req.body.fingerPrints
}).then(user => {
res.send({message :`User Created With Code ${user.code}`});
}).catch(err => {
res.send(err.message);
});
};
This Is Simple You Have to Put below code in your app.js or srever.js
app.use(express.static(__dirname + '/public'));
app.use('/uploads', express.static('uploads'));
// Above line would serve all files/folders inside of the 'uploads' directory
// And make them accessible through http://localhost:yourport/uploads.
So now when we upload image (lets say sample.png) it will be stored uploads folder and will be accessible on web page on the url http://localhost:3000/uploads/sample.png