La estructura del directorio para compartir archivos desde el backend, tanto de forma estática como dinámica, debe estar organizada para facilitar el mantenimiento y la escalabilidad del proyecto con Node.js. Aquí tienes un ejemplo de cómo podrías estructurarlo:
Detalles clave:
Archivos estáticos (Frontend):
Coloca los archivos estáticos en la carpeta
frontend/public
. El backend puede servir esta carpeta
utilizando algo como express.static
(en el caso de
Node.js).
Archivos dinámicos (Uploads):
Los archivos subidos por los usuarios, como imágenes o documentos,
pueden almacenarse en una carpeta específica como
uploads/
. Puedes crear rutas específicas en el backend
para manejar la subida y la recuperación de estos archivos.
Seguridad: Limita el acceso público a directorios sensibles. Por ejemplo, los
contenidos de uploads/
deben ser accesibles a través de rutas
del backend controladas, no directamente desde el navegador.
Flexibilidad: Mantén separadas las responsabilidades del backend y el frontend. Esto te permitirá escalar el proyecto fácilmente si decides dividirlos en servicios independientes.
Estructura del Proyecto
Aquí tienes el código fuente para cada archivo clave de la estructura. Puedes copiar y crear los archivos en tu proyecto local
Backend
server.js Archivo principal del servidor.
routes/index.js: Define las rutas de tu API.
controllers/dataController.js: Controladores para peticiones dinámicas.
Frontend
frontend/public/index.html: Página principal del frontend.
frontend/public/styles/main.css: Estilos.
frontend/public/app.js: Lógica del frontend.
Pasos para Ejecutar el Proyecto
1- Clonar la estructura: Crea las carpetas y archivos siguiendo el esquema mostrado arriba.
2- Instalar dependencias: En la raíz del proyecto, ejecuta:
3- Ejecutar el servidor: Ejecuta el backend con:
4- Abrir en el navegador: Accede a http://localhost:3000 para ver el frontend y probar la conexión con el backend.
Archivos dinámicos (Uploads):
Ejemplo de subida de archivos en
Puedes agregar este código en tu archivo principal del servidor, server.js, o modularizarlo en una carpeta específica como routes/ para mantener tu proyecto organizado. Aquí está cómo podrías integrarlo:
1. Crear la Carpeta uploads/
-
Asegúrate de crear manualmente la carpeta
uploads/
en la raíz del proyecto. Esta es la ubicación donde se almacenarán los archivos subidos.
2. Instalar Multer
-
Necesitas instalar la dependencia
multer
antes de usar el código. Ejecuta el siguiente comando en tu terminal:
3. Agregar el Código en server.js
(Opción Simple)
Si quieres agregarlo directamente en server.js
, puedes
colocarlo después de configurar el middleware y antes de iniciar el
servidor:
4. Modularizar el Código (Opción Más Organizada)
Si prefieres modularizar, sigue estos pasos:
-
Crea un Archivo en
routes/uploads.js
:
Registra las Rutas en server.js:
5. Probar la Subida de Archivos
- Usa una herramienta como Postman para probar la ruta de subida. Haz una solicitud POST a
http://localhost:3000/upload
con un archivo (clave del campo:archivo
).
- Verifica que el archivo aparece en la carpeta
uploads/
.