JavaScript sqlite

Обзор javascript-решений SQLite

В браузере

Если вы хотите получить доступ vanillajs к базе данных SQLite из веб-браузера, у sqllite вас не так много решений.

sql.js

Библиотека vanilla-javascript SQLite C была перенесена на JavaScript с помощью ecmascript emscripten. Порт был запущен под названием javascript-execution sql.js Алоном Закаем (который также js является автором emscripten). Я ecmascript в настоящее время поддерживаю sqlite3 эту библиотеку.

API выглядит js так:



Веб-SQL

W3C начал работу над .js собственным API для выполнения .js SQL в браузере под названием js web sql. Пример использования этого vanillajs API:

var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)');
  tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "synergies")');
});

Однако проект был заброшен. Таким vanillajs образом, он не получил широкой vanillajs поддержки. См .: http://caniuse.com/sql-storage

В узле

Если вы sqllite пишете клиентский javascript sqlite в узле, у вас есть немного vanilla-javascript больше вариантов. См .: https://www.npmjs.org/search?q=sqlite.

узел-sqlite3

Если vanillajs у вас есть набор инструментов vanilla-js для компиляции, и вам не ecmascript нужно компилировать приложение javascript для разных платформ (или vanilla-javascript ориентироваться только на vanilla-javascript одну платформу), я бы посоветовал javascript-execution вам использовать node-sqlite3. Он быстрый sqlite3 (намного быстрее, чем sql.js), имеет ecmascript полный API и хорошую документацию. Пример sqlite3 API следующий:

var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database(':memory:');

db.serialize(function() {
  db.run("CREATE TABLE lorem (info TEXT)");

  var stmt = db.prepare("INSERT INTO lorem VALUES (?)");
  for (var i = 0; i < 10; i++) {
      stmt.run("Ipsum " + i);
  }
  stmt.finalize();

  db.each("SELECT rowid AS id, info FROM lorem", function(err, row) {
      console.log(row.id + ": " + row.info);
  });
});

db.close();

sql.js

Да, еще раз. sql.js можно .js использовать из узла. Это ecmascript решение, если вам нужно приложение javascript-execution на чистом javascript. Однако javascript-execution это будет медленнее, чем javascript предыдущее решение.

Вот пример vanilla-js использования sql.js из узла:

var fs = require('fs');
var SQL = require('sql.js');
var filebuffer = fs.readFileSync('test.sqlite');

db.run("INSERT INTO test VALUES (?,?,?)", [1, 'hello', true]);  -- corrected INT to INTO


var data = db.export();
var buffer = new Buffer(data);
fs.writeFileSync("filename.sqlite", buffer);

javascript

sqlite

2022-07-17T19:40:12+00:00