Gracias por A2A.
Hay varias maneras de guardar la imagen porque básicamente cada imagen es un byte de datos. Discutiré aquellas prácticas que son comunes en las industrias de TI:
- Servicios en la nube de terceros: hoy en día es lo más confiable para almacenar imágenes en servicios en la nube de terceros, son servidores muy rápidos optimizados para tipos de medios y, lo que es más importante, también proporcionan otros métodos de manipulación de imágenes (la mayoría de forma gratuita) como el recorte , generar miniaturas, escala de grises, etc. Algunos de los mejores son Cloudinary, Amazon Simple Storage Service (S3) – Cloud Storage – AWS, elija de acuerdo con los requisitos y el presupuesto de su aplicación web. Este método es más fácil de implementar, la documentación le ayudará con seguridad . He usado ambos y cloudinary es mejor si soy un novato en node.js
- Manejo de archivos: también puede guardar la imagen en su propio servidor donde está alojada la aplicación de nodo. Es bueno cuando hay menos cantidad de imágenes para la aplicación (alrededor de un máximo de 40k de imágenes de 2mb, dependiendo de la configuración del servidor), para este propósito debe usar la solicitud multiparte en las API de nodo, ya que enviará datos de archivo y json en la mayoría de los casos: multiparte, esto lo ayudará en la aplicación de nodo y si comparte solo un archivo sin datos, no habrá necesidad de multiparte.
- Almacenamiento de base de datos: es la forma más convencional de almacenamiento de imágenes, estoy explicando aquí con el servidor SQL, también puede usarlo para mongodb: en primer lugar, debe hacer un formulario
HTML
con un elemento de entrada de archivo. Aquí hay un ejemplo simple:
- ¿Cuáles son los beneficios o las desventajas de cambiar la base de código de una aplicación web de 10 años de ColdFusion a un lenguaje más popular como PHP, Ruby o Python?
- ¿Qué herramienta se usa para aplicaciones móviles y web?
- ¿Por qué WordPress ganó contra Movable Type?
- ¿Debo desarrollar mi aplicación web en Node.js o Ruby on Rails?
- ¿Qué más funciones puedo agregar en este sitio web - techorenda.com?
entonces deberías cargar el middleware express.bodyParser()
:
app.use (express.bodyParser ({uploadDir: ‘/ ruta / a / temporary / directory / to / store / uploaded / files’}));
y defina una ruta para manejar la publicación del formulario:
var ruta = require (‘ruta’),
fs = require (‘fs’);
// …
app.post (‘/ upload’, función (req, res) {
var tempPath = req.files.file.path,
targetPath = path.resolve (‘./ uploads / image.png’);
if (path.extname (req.files.file.name) .toLowerCase () === ‘.png’) {
fs.rename (tempPath, targetPath, function (err) {
si (err) lanza err;
console.log (“¡Carga completada!”);
});
} más {
fs.unlink (tempPath, function () {
si (err) lanza err;
console.error (“¡Solo se permiten archivos .png!”);
});
}
// …
});
para mostrar el archivo cargado, supongo que ya tiene una página HTML
con una etiqueta de imagen:
Ahora puede usar res.sendFile
para servir la imagen cargada:
app.get (‘/ image.png’, function (req, res) {
res.sendfile (path.resolve (‘./ uploads / image.png’));
});
Estos 3 son el enfoque más común para cargar imágenes
Espero que esto ayude
Feliz codificación 🙂