Первоначально это было опубликовано на atdatabases.org

SQLite — отличная база данных для встроенных сценариев использования. например если вы используете node.js в IOT или в приложении Electron.

Для начала установите @databases/sqlite с помощью yarn или npm:

yarn install @databases/sqlite

or

npm install @databases/sqlite

Затем вы можете import (если вы используете TypeScript/Babel/какую-то другую среду, поддерживающую ESModules) или require (если вы используете простой JavaScript) и вызвать connect для создания файла базы данных, если он не существует, и открыть его. если он уже существует.

Вот пример использования SQLite в качестве базового хранилища строк значений ключа (здесь VARCHAR — это тип данных SQLite, который эквивалентен string в JavaScript).

const connect = require('@databases/sqlite');
const {sql} = require('@databases/sqlite');
const db = connect('temp.db');
async function prepare() {
  await db.query(sql`
    CREATE TABLE IF NOT EXISTS app_data (
      id VARCHAR NOT NULL PRIMARY KEY,
      value VARCHAR NOT NULL
    );
  `);
}
const prepared = prepare();
async function set(id, value) {
  await prepared;
  await db.query(sql`
    INSERT INTO app_data (id, value)
      VALUES (${id}, ${value})
    ON CONFLICT (id) DO UPDATE
      SET value=excluded.value;
  `);
}
async function get(id) {
  await prepared;
  const results = await db.query(sql`
    SELECT value FROM app_data WHERE id=${id};
  `);
  if (results.length) {
    return results[0].value;
  } else {
    return undefined;
  }
}
async function remove(id) {
  await prepared;
  await db.query(sql`
    DELETE FROM app_data WHERE id=${id};
  `);
}
async function run() {
  const runCount = JSON.parse((await get('run_count')) || '0');
  console.log('run count =', runCount);
  await set('run_count', JSON.stringify(runCount + 1));
  console.log(await get('name'));
  await set('name', 'Forbes');
  console.log(await get('name'));
  await set('name', 'Forbes Lindesay');
  console.log(await get('name'));
  await remove('name');
}
run().catch((ex) => {
  console.error(ex.stack);
  process.exit(1);
});

Для получения дополнительной информации ознакомьтесь с Документацией по API для @databases/sqlite и Документацией по языку SQLite.