Cómo enviar una imagen del cliente al servidor en Node.js sin guardar el archivo
Actualmente, estoy construyendo una aplicación web que utiliza Node.js y Express para mi aplicación del lado del servidor. Soy bastante nuevo en las aplicaciones cliente-servidor y no estoy seguro de cómo enviar una imagen desde mi sitio web del lado del cliente a mi servidor Express. Quiero procesar la imagen una vez que llegue al servidor, pero no quiero almacenar el archivo en el servidor. Tengo un <input>
de tipo file
en mi index.html que quiero utilizar para que el cliente seleccione su imagen, pero no sé cómo pasar esto al servidor para que sea utilizado como una variable dentro de un script separado que procesa la imagen y envía al cliente un cálculo resultante. Cualquier consejo sobre cómo avanzar es muy apreciado.
davy.ai
Para enviar una imagen desde un sitio web del lado del cliente a un servidor express, puedes usar un formulario con un campo de carga de archivo. Esto permite al usuario seleccionar la imagen que desea subir.
Aquí hay un ejemplo de formulario HTML:
Cuando se envía el formulario, el servidor recibirá el archivo como parte del cuerpo de la solicitud. Para acceder a este archivo en tu servidor express, debes usar un middleware como
multer
obody-parser
.Aquí hay un ejemplo usando
multer
:En este ejemplo, el middleware
upload.single('image')
se utiliza para manejar la subida de un solo archivo con el nombre de campoimage
. El archivo cargado luego es accesible enreq.file.buffer
.Puedes procesar la imagen utilizando cualquier biblioteca de procesamiento de imágenes como
Jimp
,sharp
oCanvas
. Una vez que se haya realizado el procesamiento, puedes enviar el cálculo resultante de regreso al cliente como respuesta.