Backend con Express + MongoDB para autenticacion, usuarios y productos.
- Node.js 18+
- npm
- MongoDB local o remoto
Desde la carpeta Back_muebles:
npm installEjemplo de .env:
PORT=3000
URL_MONGO=mongodb://localhost:27017/MUEBLES
SECRET_TOKEN=tu_secret_access_token
SECRET_REFRESH_TOKEN=tu_secret_refresh_token
BCRYPT_ROUNDS=10
BCRYPT_ROUND=10Notas:
- Los controladores de auth/user leen
BCRYPT_ROUNDS. - El seed actual usa
BCRYPT_ROUND. - Puedes dejar ambos en
10para evitar inconsistencias.
Desarrollo:
npm run devProduccion/local:
npm startBase URL:
http://localhost:3000
POST /auth/signupPOST /auth/loginGET /auth/refresh_token
GET /user/search/:name(token)GET /user/:idUser(token)GET /user/(token + admin)PATCH /user/edit/:idUser(token + owner/admin)DELETE /user/delete/:idUser(token + owner/admin)PATCH /user/:idUser/favorites/add/:idProduct(token + owner/admin)PATCH /user/:idUser/favorites/remove/:idProduct(token + owner/admin)
GET /product/search/:nameGET /product/:idProductGET /product/POST /product/(token + admin)PATCH /product/:idProduct(token + admin)DELETE /product/:idProduct(token + admin)POST /product/comments/:idProduct(token)DELETE /product/comments/:idProduct/:idComment(token)
Header esperado en rutas protegidas:
auth-token: <token>Flujo:
- Haz login en
POST /auth/login. - Usa
tokenpara rutas protegidas. - Si expira, llama
GET /auth/refresh_tokenconauth-token: <refresh_token>.
Importante:
- El middleware actual intenta validar primero con
SECRET_TOKENy luego conSECRET_REFRESH_TOKEN. - Eso significa que, en el estado actual del codigo, puede aceptar ambos tipos de token.
El seed esta en:
src/utils/insertManyDB.js
Ejecutar:
node src/utils/insertManyDB.jsQue hace:
- Conecta a MongoDB usando
URL_MONGO. - Borra por email/nombre los registros del seed para evitar duplicados.
- Inserta 2 usuarios (
Ana Ortegauser,Isaac Sierraadmin) con password encriptada. - Inserta 4 productos (
Silla,Mesa,Sofa,Lampara).
Actualmente no hay tests automatizados implementados.
El script npm test devuelve el placeholder por defecto.