Import a driver; there is no Elide.db global.
| Module | API |
|---|---|
elide:sqlite | Embedded, synchronous |
elide:postgres | Network, Promise-based |
elide:mysql | Network, Promise-based |
SQLite
import { Database } from "elide:sqlite";
const db = new Database(); // or new Database(":memory:"), or new Database("app.db")
db.exec("CREATE TABLE users (name TEXT, age INTEGER)");
db.prepare("INSERT INTO users VALUES (?, ?)").run("Ada", 36);
db.prepare("INSERT INTO users VALUES ($name, $age)").run({ $name: "Alan", $age: 41 });
console.log(db.prepare("SELECT name FROM users WHERE age > ?").all(40)); // [{name: "Alan"}]
const insert = db.transaction(() => db.exec("INSERT INTO users VALUES ('Grace', 85)"));
insert();
db.close();Databasehasquery,prepare,exec,transaction,loadExtension,serialize, andclose.- Statements have
all(),values(),get(), andrun(), with positional (?,?1) or named ($name) parameters. transaction(fn)wraps a synchronous callback.node:sqliteexports the sameDatabaseclass; it does not exportDatabaseSync.
PostgreSQL and MySQL
import { Database } from "elide:postgres";
const db = await Database.connect({
host: "127.0.0.1",
port: 5432,
database: "app",
user: "app",
password: process.env.DB_PASSWORD,
});
await db.close();Use elide:mysql and port 3306 for MySQL. database, user, and password are required.