Первоначально это было опубликовано на 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.