bodyapi2 es una herramienta CLI que te permite generar de forma rápida y sencilla la estructura base para un CRUD usando Express.js y bases de datos como MSSQL, PostgreSQL, MariaDB, MySQL y MongoDB.
ACTUALMENTE SOLO ESTÁ ACTIVO EL MÓDULO DE
MSSQL
PARA INYECCIÓN DE MODELOS.
Aun así, puedes crear el proyecto inicial con cualquiera de los motores.
npx bodyapi2@latest
Esto lanzará un asistente donde se te preguntará:
- Nombre del proyecto.
- Nombre del recurso principal (ej: productos).
- Motor de base de datos (mssql, mysql, postgresql, mariadb, mongodb).
- Si deseas conectarte directamente a tu base de datos (opcional).
- Si presionas no, se generará una base básica de tu proyecto, manualmente meterás tus credenciales en el .env
- Cadena de conexión (solo para MSSQL de momento).
- Cadena de texto: Server=localhost;Database=tubd;User Id=sa;Password=Tucontraseña;Encrypt=false;TrustServerCertificate=true;
Si no tienes BD creada se crea sola
tu-proyecto/
├── src/
│ ├── controllers/
│ ├── routes/
│ ├── models/ # (opcional, si generas con comando `model`)
│ ├── db/
│ └── index.js
├── .env
└── package.json
Para generar un modelo de tabla:
npx bodyapi2 model tamales
Esto crea el archivo:
src/models/tamales.model.js
Contenido inicial:
// Modelo de tabla para 'tamales'
export const tamalesModel = {
tableName: 'tamales',
columns: {
id: 'INT PRIMARY KEY IDENTITY(1,1)',
nombre: 'VARCHAR(100) NOT NULL'
// Agrega más columnas aquí
}
};
Una vez creado el modelo, puedes inyectarlo a tu base de datos SQL Server:
npx bodyapi2@latest model tamales create
Esto también generará automáticamente:
controllers/tamales.controllers.js
routes/tamales.routes.js
- Aún no se actualiza automáticamente la estructura de las tablas en SQL Server si cambias el modelo después. Se está trabajando en esta función.
- Si modificas el modelo (por ejemplo, cambias
nombre
porarticulo
), el CRUD sí se actualizará, pero no cambiará la tabla en la base de datos ya creada. - Estará disponible en la próxima actualización major.
- Sí el npx bodyapi2 model 'nombre del articulo' no crea la carpeta models, creala (momentaneamente, se trabaja en arreglar) models -> nombrearticulo.models.js
export const nombrearticuloModel = { tableName: 'nombrearticulo', columns: { id: 'INT PRIMARY KEY IDENTITY(1,1)', nombre: 'VARCHAR(100) NOT NULL' // Agrega más columnas aquí } };
- Esperemos resolverlo pronto!
- Posteriormente ejecutar npx bodyapi2 model 'nombre del articulo' create para la inyección de tablas a mssql
.:::. .:::.
:::::::. .::::::: bodyapi2
::::::::::::::::: made with love by
':::::::::::::::' 360flip team
':::::::::::'
¡Esperamos que te ayude a arrancar tus microservicios más rápido!
Cualquier idea o sugerencia es bienvenida
- Haremos una comunidad dónde podamso explotar el conocimiento! Originalmente está pensado en ingenieros IoT, pero también para personas que inician, o usan el método tradicional para sus apis!
- Nuestra página es www.togetheworld.com
- Nos encontramos en desarrollo de cursos para UDEMY, estaremos subiendo información pronto! :D