Una Herramienta Sumor Cloud.
Más Documentación
Un conector de base de datos para MySQL, etc. Basado en entidad.
npm i @sumor/database --save
Requiere Node.JS versión 18.x o superior
Dado que este paquete está escrito en módulo ES, por favor cambie el siguiente código en su archivo package.json
:
{
"type": "module"
}
Puede usar el método de instalación para instalar entidad y vista en la base de datos.
database.install(config, [ruta de recurso], [datos de recurso])
caso 1: instalar entidad y vista desde la ruta de recurso, cargará datos/entidad y datos/vista desde la ruta raíz del proyecto.
import database from '@sumor/database'
const config = {
host: 'localhost',
user: 'root',
password: 'password',
database: 'database',
port: 3306
}
await database.install(config.database, process.cwd() + '/datos')
caso 2: instalar entidad y vista desde los datos del recurso, cargará datos/entidad y datos/vista desde el objeto de datos.
import database from '@sumor/database'
await database.install(config, {
entidad: {
Coche: {
propiedad: {
marca: {
tipo: 'cadena',
longitud: 100
},
modelo: {
tipo: 'cadena',
longitud: 100
}
}
}
},
vista: {}
})
import database from '@sumor/database'
const config = {
host: 'localhost',
user: 'root',
password: 'password',
database: 'base de datos',
port: 3306
}
// obtener cliente con pool de conexiones
const cliente = await database.cliente(config)
// obtener conexión
const db = await cliente.conectar()
// establecer usuario operativo
db.setUsuario('tester')
// crear registro
const idCoche1 = await db.insertar('Coche', {
marca: 'BMW',
modelo: 'X5'
})
const idCoche2 = await db.insertar('Coche', {
marca: 'BMW',
modelo: 'X6'
})
// leer registro
const coche = await db.único('Coche', { id: idCoche })
// coche = {id: idCoche1, marca: 'BMW', modelo: 'X5'}
// consultar registros
const coches = await db.consulta('Coche', {
marca: 'BMW'
})
// coches = [{id: idCoche1, marca: 'BMW', modelo: 'X5'}, {id: idCoche2, marca: 'BMW', modelo: 'X6'}]
// contar registros
const cantidad = await db.contar('Coche', {
marca: 'BMW'
})
// cantidad = 2
// actualizar registro
await db.actualizar(
'Coche',
{ id: idCoche1 },
{
marca: 'BMW',
modelo: 'X5M'
}
)
// asegurar registro
await db.asegurar('Coche', ['marca'], {
marca: 'BMW',
modelo: 'X5C'
})
// no insertará el registro si la marca 'BMW' ya existe
// modificar registro
await db.modificar('Coche', ['marca'], {
marca: 'BMW',
modelo: 'X5C'
})
// actualizará el modelo del registro si la marca 'BMW' ya existe
// eliminar registro
await db.eliminar('Coche', { id: idCoche1 })
// cerrar conexión
await db.cometer()
// revertir
await db.retroceder()
// cerrar conexión
await db.liberar()
// destruir cliente cuando el servidor deba cerrarse
await cliente.destruir()
// consultar registros con opciones
const coches = await db.seleccionar(
'Coche',
{
marca: 'BMW'
},
{
término: 'X5',
rangoTérmino: ['modelo'],
superior: 10,
omitir: 0
}
)
Puede agregar una matriz de índices a la definición de entidad para crear índices en la tabla, por defecto, creará un índice en el campo id
.
Puede agregar un objeto de unión a la definición de entidad para crear una unión en la tabla. Como en el siguiente ejemplo, creará el campo userId en la entidad Coche.
import database from '@sumor/database'
const config = {
host: 'localhost',
user: 'root',
password: 'password',
database: 'base de datos',
port: 3306
}
await database.install(config, {
entidad: {
Coche: {
propiedad: {
marca: {
tipo: 'cadena',
longitud: 100
},
modelo: {
tipo: 'cadena',
longitud: 100
}
},
índice: ['userId'],
unir: {
usuario: 'Usuario'
}
}
},
vista: {}
})