Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

164
Views
La imagen no puede ser una matriz o un objeto

Estoy desarrollando un proyecto que consiste en publicar un post y poder subir una imagen de usuario. Usé JS para Front y NodeJs para Back (Multer para cargar imágenes). Tengo un error al hacer una publicación y cargar una imagen en mi DDBB en Mysql. Creé las publicaciones sin ningún error, pero cuando implementé la capacidad de enviar una imagen, obtuve este error:

violación de cadena: la imagen no puede ser una matriz o un objeto

Código:

 //Here call the action from PostActions const addPost = (body) => dispatch(createPostAction(body)); const userId = props.credentials?.user.id //Formate the picture const formdata = new FormData(); formdata.append('image', image, userId); const user = post.user; const token = post.token; //Create the post addPost({ title, content, image, userName: post.name, lastName: post.lastName, date: new Date(), userId: user.id, token: token, });
 //My route router.post("/", authenticate, fileUpload, async(req, res) => { try { const id = req.body; const image = req.file; res.json(await postControllers.makePost(id, image)) } catch (error) { return res.status(500).json({ message: error.message }); } });
 //My controller async makePost(post) { return Post.create(post); }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

No recomiendo almacenar imágenes en una base de datos mysql ni en ninguna base de datos en general.

La forma más común de manejar la imagen la carga para almacenar una imagen en un sistema de almacenamiento de archivos como Amazon S3 o Cloudfront, y luego almacena la URL de la imagen que recibe (que generalmente es la ruta del archivo a la imagen y es una cadena), en la base de datos.

Esto se debe tanto a la optimización del rendimiento como del ancho de banda.

Sin embargo, si desea almacenarlo en su base de datos MySQL, debe almacenarlo como un blob. Ex:

 CREATE TABLE 'test'.'pic' ( 'pic' INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, 'img' LONGBLOB NOT NULL, PRIMARY KEY ('pic') )

Esta infracción de cadena podría deberse a que MySQL espera una cadena (ruta a una imagen) y no está configurado para recibir un tipo de blob.

Para probar, intente pasar una cadena como el valor de la clave de la imagen y vea si la publicación se realiza correctamente.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!