A thin wrapper for sqlite3
database that expose an async API.
Note: sqlite3
is marked as a peer dependency, you must also install it.
npm install promised-sqlite3 sqlite3
AsyncDatabase
is a wrapper that expose an async version of the sqlite3.Database
's API.
AsyncStatement
is a wrapper that expose an async version of the sqlite3.Statement
's API.
The following methods of sqlite3.Database
are available as async methods in AsyncDatabase
:
open
close
run
get
all
each
exec
prepare
The following methods of sqlite3.Statement
are available as async methods in AsyncStatement
:
bind
reset
finalize
run
get
all
each
These methods accept the same arguments as their sync version except for the callback
one.
Refer to the sqlite3
's API reference for further information on their usage.
AsyncDatabase
and AsyncStatement
only exposes the async methods listed above. You can access to the sqlite3.Database
or the sqlite3.Statement
object with the inner
property (see example below).
const { AsyncDatabase } = require("promised-sqlite3");
(async () => {
try {
// Create the AsyncDatabase object and open the database.
const db = await AsyncDatabase.open("./db.sqlite");
// Access the inner sqlite3.Database object to use the API that is not exposed by AsyncDatabase.
db.inner.on("trace", (sql) => console.log("[TRACE]", sql));
// Run some sql request.
await db.run(
"CREATE TABLE IF NOT EXISTS foo (id INTEGER PRIMARY KEY AUTOINCREMENT, a TEXT NOT NULL, b TEXT)"
);
await db.run("INSERT INTO foo (a, b) VALUES (?, ?)", "alpha", "beta");
await db.run("INSERT INTO foo (a, b) VALUES ($goo, $hoo)", {
$goo: "GOO !",
$hoo: "HOO :",
});
await db.run("INSERT INTO foo (a, b) VALUES (?, ?)", [
"Value of a",
"Value of b",
]);
// Read database.
const row = await db.get("SELECT * FROM foo WHERE id = ?", 2);
const rows = await db.all("SELECT * FROM foo");
await db.each("SELECT * FROM foo WHERE id > ?", 5, (row) =>
console.log(row)
);
// Create a async statement
const statement = await db.prepare("SELECT * FROM foo WHERE id = ?", 2);
const row = await statement.get();
// Close the database.
await db.close();
} catch (err) {
console.error(err);
}
})();