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
Se requiere la versión de Node.JS 16.x o superior
Como este paquete está escrito en módulo ES, por favor cambia el siguiente código en tu archivo package.json
:
{
"type": "module"
}
import database from '@sumor/database'
const config = {
host: 'localhost',
user: 'root',
password: 'Contraseña',
database: 'base_de_datos',
port: 3306
}
await database.install(config, {
entity: {
Auto: {
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 db = await cliente.connect()
// establecer usuario operativo
db.setUser('tester')
// crear registro
const idAuto1 = await db.insert('Auto', {
marca: 'BMW',
modelo: 'X5'
})
const idAuto2 = await db.insert('Auto', {
marca: 'BMW',
modelo: 'X6'
})
// leer registro
const auto = await db.single('Auto', { id: idAuto })
// auto = {id: idAuto1, marca: 'BMW', modelo: 'X5'}
// consultar registros
const autos = await db.query('Auto', {
marca: 'BMW'
})
// autos = [{id: idAuto1, marca: 'BMW', modelo: 'X5'}, {id: idAuto2, marca: 'BMW', modelo: 'X6'}]
// contar registros
const cantidad = await db.count('Auto', {
marca: 'BMW'
})
// cantidad = 2
// actualizar registro
await db.update(
'Auto',
{ id: idAuto1 },
{
marca: 'BMW',
modelo: 'X5M'
}
)
// asegurar registro
await db.ensure('Auto', ['marca'], {
marca: 'BMW',
modelo: 'X5C'
})
// no insertará el registro si ya existe la marca 'BMW'
// modificar registro
await db.modify('Auto', ['marca'], {
marca: 'BMW',
modelo: 'X5C'
})
// actualizará el modelo del registro si ya existe la marca 'BMW'
// eliminar registro
await db.delete('Auto', { id: idAuto1 })
// cerrar conexión
await db.commit()
// revertir
await db.rollback()
// cerrar conexión
await db.release()
// destruir cliente cuando se deba apagar el servidor
await cliente.destroy()
// consultar registros con opciones
const autos = await db.select(
'Auto',
{
marca: 'BMW'
},
{
término: 'X5',
rangoTérmino: ['modelo'],
superior: 10,
omitir: 0
}
)
Puedes agregar un arreglo de índices a la definición de la entidad para crear un índice en la tabla, por defecto, creará un índice en el campo id
.
Puedes agregar un objeto de unión a la definición de la entidad para crear una unión en la tabla. Como en el siguiente ejemplo, creará el campo userId en la entidad Car.
import database from '@sumor/database'
const config = {
host: 'localhost',
user: 'root',
password: 'Contraseña',
database: 'base_de_datos',
port: 3306
}
await database.install(config, {
entity: {
Auto: {
propiedad: {
marca: {
tipo: 'cadena',
longitud: 100
},
modelo: {
tipo: 'cadena',
longitud: 100
}
},
índice: ['userId'],
unir: {
usuario: 'Usuario'
}
}
},
vista: {}
})