Ein Sumor Cloud-Tool.
Weitere Dokumentationen
Ein Datenbank-Connector für MySQL, usw. Basierend auf Entität.
npm i @sumor/database --save
Erfordert Node.JS-Version 18.x oder höher
Da dieses Paket in ES-Modulen geschrieben ist,
ändern Sie bitte den folgenden Code in Ihrer package.json
-Datei:
{
"type": "module"
}
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: {}
})
// Client mit Verbindungspool erhalten
const client = await database.client(config)
// Verbindung erhalten
const db = await client.connect()
// Benutzer festlegen
db.setUser('tester')
// Datensatz erstellen
const car1Id = await db.insert('Car', {
brand: 'BMW',
model: 'X5'
})
const car2Id = await db.insert('Car', {
brand: 'BMW',
model: 'X6'
})
// Datensatz lesen
const car = await db.single('Car', { id: carId })
// car = {id: car1Id, brand: 'BMW', model: 'X5'}
// Datensätze abfragen
const cars = await db.query('Car', {
brand: 'BMW'
})
// cars = [{id: car1Id, brand: 'BMW', model: 'X5'}, {id: car2Id, brand: 'BMW', model: 'X6'}]
// Anzahl an Datensätzen ermitteln
const count = await db.count('Car', {
brand: 'BMW'
})
// count = 2
// Datensatz aktualisieren
await db.update(
'Car',
{ id: car1Id },
{
brand: 'BMW',
model: 'X5M'
}
)
// Datensatz sicherstellen
await db.ensure('Car', ['brand'], {
brand: 'BMW',
model: 'X5C'
})
// Der Datensatz wird nicht eingefügt, wenn die Marke 'BMW' bereits vorhanden ist.
// Datensatz ändern
await db.modify('Car', ['brand'], {
brand: 'BMW',
model: 'X5C'
})
// Der Datensatz wird aktualisiert, wenn die Marke 'BMW' bereits vorhanden ist.
// Datensatz löschen
await db.delete('Car', { id: car1Id })
// Verbindung schließen
await db.commit()
// Rollback
await db.rollback()
// Verbindung schließen
await db.release()
// Client zerstören, wenn der Server heruntergefahren werden soll
await client.destroy()
// Datensätze mit Optionen abfragen
const cars = await db.select(
'Car',
{
brand: 'BMW'
},
{
term: 'X5',
termRange: ['model'],
top: 10,
skip: 0
}
)
Sie können ein Index-Array zur Entitätsdefinition hinzufügen, um einen Index in der Tabelle zu erstellen. Standardmäßig wird ein Index auf dem Feld id
erstellt.
Sie können ein Verknüpfungsobjekt zur Entitätsdefinition hinzufügen, um eine Verknüpfung in der Tabelle zu erstellen. Im folgenden Beispiel wird das Feld "userId" in der Car-Entität erstellt.
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
}
},
index: ['userId'],
join: {
user: 'User'
}
}
},
view: {}
})