base de données

Un Outil Sumor Cloud.
Autres Documentation Un connecteur de base de données pour MySQL, etc. Basé sur l'entité.

CI Test Couverture Audit

Installation

npm i @sumor/database --save

Prérequis

Version de Node.JS

Requiert la version Node.JS 16.x ou supérieure

Requérir un module ES de Node.JS

Comme ce package est écrit en module ES, veuillez changer le code suivant dans votre fichier package.json:

{
  "type": "module"
}

Utilisation

Utilisation Générale

import database from '@sumor/database'

const config = {
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'database',
  port: 3306
}

await database.install(config, {
  entity: {
    Car: {
      property: {
        brand: {
          type: 'string',
          length: 100
        },
        model: {
          type: 'string',
          length: 100
        }
      }
    }
  },
  view: {}
})

// Obtenir le client avec le pool de connexions
const client = await database.client(config)

// Obtenir la connexion
const db = await client.connect()

// Définir l'utilisateur de l'opération
db.setUser('testeur')

// Créer un enregistrement
const idVoiture1 = await db.insert('Car', {
  brand: 'BMW',
  model: 'X5'
})
const idVoiture2 = await db.insert('Car', {
  brand: 'BMW',
  model: 'X6'
})

// Lire l'enregistrement
const voiture = await db.single('Car', { id: idVoiture })
// voiture = {id: idVoiture1, brand: 'BMW', model: 'X5'}

// Requête des enregistrements
const voitures = await db.query('Car', {
  brand: 'BMW'
})
// voitures = [{id: idVoiture1, brand: 'BMW', model: 'X5'}, {id: idVoiture2, brand: 'BMW', model: 'X6'}]

// Compter les enregistrements
const count = await db.count('Car', {
  brand: 'BMW'
})
// count = 2

// Mettre à jour l'enregistrement
await db.update(
  'Car',
  { id: idVoiture1 },
  {
    brand: 'BMW',
    model: 'X5M'
  }
)

// Assurer l'enregistrement
await db.ensure('Car', ['brand'], {
  brand: 'BMW',
  model: 'X5C'
})
// n'insérera pas l'enregistrement si la marque 'BMW' existe déjà

// Modifier l'enregistrement
await db.modify('Car', ['brand'], {
  brand: 'BMW',
  model: 'X5C'
})
// mettra à jour le modèle de l'enregistrement si la marque 'BMW' existe déjà

// Supprimer l'enregistrement
await db.delete('Car', { id: idVoiture1 })

// Fermer la connexion
await db.commit()

// Annuler
await db.rollback()

// Fermer la connexion
await db.release()

// Détruire le client lorsque le serveur doit être arrêté
await client.destroy()

Options de Requête

// Requête des enregistrements avec des options
const voitures = await db.select(
  'Car',
  {
    brand: 'BMW'
  },
  {
    term: 'X5',
    termRange: ['model'],
    top: 10,
    skip: 0
  }
)