Tengo que mostrar la imagen que está almacenada en el servidor y la imagen está almacenada en la base de datos de esta manera:
{"_id":{"$oid":"61bc353829247781224cd5b0"}, "name":"Chicken Breast", "type":"protein", "image":"https://mmr-allapi.herokuapp.com/allfoodapi/fooduploads\\Pollo.png", "__v":0}La solicitud posterior de esta ruta es así:
foodrouter.post('/addprotein',upload.single('image'),(req,res,next)=>{
const protein = new Protein({ _id:mongoose.Types.ObjectId(), name:req.body.name, type:req.body.type, image:"https://mmr-allapi.herokuapp.com/allfoodapi/"+req.file.path // image:"localhost:5000/allfoodapi/"+req.file.path }); protein.save().then(result=>{ res.status(201).json({ message:"Protein added" }) }) .catch(err=>{ res.status(500).json({ error:err }) })});
así es como se muestra la API
{ "protein": [ { "name": "Egg", "type": "protein", "image": "https://mmr-allapi.herokuapp.com/allfoodapi/fooduploads/Egg.png" }, { "name": "Chicken Breast", "type": "protein", "image": "localhost:5000/allfoodapi/fooduploads\\Pollo.png" }, { "name": "Chicken Breast", "type": "protein", "image": "https://mmr-allapi.herokuapp.com/allfoodapi/fooduploads\\Pollo.png" }, { "name": "Chicken Breast", "type": "protein", "image": "localhost:5000/allfoodapi/fooduploads\\Pollo.png" }, { "name": "Chicken Breast", "type": "protein", "image": "https://mmr-allapi.herokuapp.com/allfoodapi/fooduploads\\Pollo.png" } ] }y aquí está mi ruta para mostrar la imagen
foodrouter.get("/fooduploads/:str", (req, res) => { console.log(req.params.str) console.log(req.url) res.sendFile(path.join(__dirname, `../fooduploads/${req.params.str}`)); }); pero aquí el problema es que cuando hago clic en el enlace de la imagen que está almacenado en la base de datos ( https://mmr-allapi.herokuapp.com/allfoodapi/fooduploads\\Pollo.png ), entonces soy redirigido a la imagen por el enrutamiento de la imagen, pero el problema es cuando envié este enlace a otra persona y mientras usaba este enlace en el front-end esto no funciona, estaba diciendo
Cannot GET /allfoodapi/fooduploads//Pollo.pngcomo puedo solucionar esto por favor ayuda
Veo que está guardado así:
{ "name": "Chicken Breast", "type": "Protein", "image": "https://images-prod.healthline.com/hlcmsresource/images/AN_images/baked-whole-chicken-1296x728.jpg" },Y la imagen detrás de este enlace es un jpeg adecuado con un bonito pollo al horno. Parece que su base de datos solo guarda enlaces a las imágenes, no las imágenes en sí. Este pollo en particular, por ejemplo, se almacena en AWS S3, otras imágenes se almacenan en diferentes recursos.
Bueno, aparte del huevohttps://mmr-allapi.herokuapp.com/allfoodapi/fooduploads/Egg.png Este técnicamente funciona, pero no se ve tan sabroso como el pollo.