Una Herramienta Cloud de Sumor.
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 16.x o superior
Como este paquete está escrito en módulo ES,
por favor cambie el siguiente código en su archivo package.json
:
{
"type": "module"
}
import database from '@sumor/database'
const config = {
host: 'localhost',
user: 'root',
password: 'password',
database: 'database',
port: 3306
}
await database.install(config, {
entidad: {
Coche: {
propiedad: {
marca: {
tipo: 'cadena',
longitud: 100
},
modelo: {
tipo: 'cadena',
longitud: 100
}
}
}
},
vista: {}
})
// obtener cliente con pool de conexiones
const cliente = await database.client(config)
// obtener conexión
const bd = await cliente.connect()
// establecer usuario de operación
bd.setUser('tester')
// crear registro
const idCoche1 = await bd.insertar('Coche', {
marca: 'BMW',
modelo: 'X5'
})
const idCoche2 = await bd.insertar('Coche', {
marca: 'BMW',
modelo: 'X6'
})
// leer registro
const coche = await bd.unico('Coche', { id: idCoche })
// coche = {id: idCoche1, marca: 'BMW', modelo: 'X5'}
// consultar registros
const coches = await bd.consulta('Coche', {
marca: 'BMW'
})
// coches = [{id: idCoche1, marca: 'BMW', modelo: 'X5'}, {id: idCoche2, marca: 'BMW', modelo: 'X6'}]
// contar registros
const count = await bd.contar('Coche', {
marca: 'BMW'
})
// count = 2
// actualizar registro
await bd.actualizar(
'Coche',
{ id: idCoche1 },
{
marca: 'BMW',
modelo: 'X5M'
}
)
// asegurar registro
await bd.asegurar('Coche', ['marca'], {
marca: 'BMW',
modelo: 'X5C'
})
// no insertará el registro si la marca 'BMW' ya existe
// modificar registro
await bd.modificar('Coche', ['marca'], {
marca: 'BMW',
modelo: 'X5C'
})
// actualizará el modelo del registro si la marca 'BMW' ya existe
// borrar registro
await bd.eliminar('Coche', { id: idCoche1 })
// cerrar conexión
await bd.confirmar()
// deshacer
await bd.revertir()
// cerrar conexión
await bd.liberar()
// destruir cliente cuando el servidor deba cerrarse
await cliente.destruir()
// consultar registros con opciones
const coches = await bd.seleccionar(
'Coche',
{
marca: 'BMW'
},
{
término: 'X5',
rangoTérmino: ['modelo'],
superior: 10,
saltar: 0
}
)
Puedes añadir un array de índice a la definición de entidad para crear un índice en la tabla, por defecto, se creará un índice en el campo id
.
Puedes añadir 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: 'database',
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: {}
})