SUBIR ARCHIVOS CON NODE.JS: CÓMO IMPLEMENTARLO

Para subir ficheros con NodeJS se puede usar el paquete multer que es un middleware de NodeJS para manejar la subida de archivos en aplicaciones que usan Express de NodeJS, ideal para procesar formularios. A continuación, te explico paso a paso cómo configurarlo y usarlo.
Para instalar multer hay que ejecutar, en consola, el comando "npm install express multer --save".
const express = require('express');
const multer = require('multer');
const path = require('path');

const app = express();
const port = 3977;

// Configuración de Multer
//configurar multer para subida de archivos
const storage = multer.diskStorage({
 destination: (req,file,cb) => { cb(null,"./uploads/images");},
 filename: (req,file,cb) => { cb(null,"img-" + Date.now() + "-" + file.originalname);}
});
//Validaciones
const fileFilter = (req, file, cb) => {
  const allowedTypes = ['image/png', 'image/jpg', 'image/jpeg'];
  if (allowedTypes.includes(file.mimetype)) {
    cb(null, true);
  } else {
    cb(new Error('Solo se permiten imágenes (png, jpg, jpeg)'), false);
  }
};

const upload = multer({
  storage: storage,
  fileFilter: fileFilter,
  limits: { fileSize: 5 * 1024 * 1024 },
});

// Servir archivos estáticos
app.use(express.static('public'));

// Ruta para subir un archivo
app.put('/upload',upload.single("fileFieldName"),(req, res) => {
  if (!req.file) {
    return res.status(400).json({ error: 'No se subió ningún archivo o el formato no es válido' });
  }
  res.json({ message: 'Archivo subido con éxito', file: req.file });
});

// Poner el servidor a escuchar
app.listen(port, () => {
  console.log('Servidor corriendo en el puerto ' + port);
});
En este ejemplo se muestra como subir una imagen usando el método "PUT". Lo mejor es probarlo con "Postman".
El post recuperar imagen en NodeJS sería el siguiente paso para subir ficheros y recuperarlos, por ejemplo, recuperar una imagen para mostrarla.