Here is what I get when make a request on the end point image rendered as text
My code :
export const getFile = async (req, res) => {
try {
const { userId } = req.user;
const user = await UserModel.findById(userId);
if (!user) {
return res.status(404).json({ error: 'User not found' });
}
const { file } = user; //file: '647ac7d78a0fc8271234ac69--Char (2).jpg'
const mimeType = path.extname(file);
let contentType ;
switch (mimeType) {
case '.png': contentType = 'image/png'; break;
case '.jpg': contentType = 'image/jpg'; break;
case '.jpeg': contentType = 'image/jpeg'; break;
}
const imagePath = `./uploads/${file}`
fs.readFile(imagePath, (err, data) => {
if (err) {
console.error(err);
return res.status(500).send('Internal Server Error');
}
res.set('Content-Type', `image/${contentType}`);
res.send(data);
});
} catch (error) {
console.error(error);
res.status(500).send('Internal Server Error');
}
};
the image does exist in that path. When I make a request I will return like the image linked above.
res.set('Content-Type', ${contentType}); doesn't work any better.