Подтвердить что ты не робот

Какой SQLite использовать с nodejs

Я разрабатываю приложение, используя node.js. В этом я готов использовать SQLite как встроенную базу данных. Я искал онлайн для модулей SQLite npm. Я нашел различные модули:

Из документации и других источников я понял, что (1) работает синхронно, а (2) и (3) работает асинхронно. Итак, я отказался от плана использования (1).

Теперь, я хочу знать, в чем разница между (2) и (3) и какой из них предпочтительнее? Я много гугл, но не мог найти много, чтобы помочь.

4b9b3361

Ответ 1

Используйте https://github.com/mapbox/node-sqlite3. Он асинхронный (почти обязательный), он наиболее активно поддерживается, и он имеет большинство звезд на GitHub.

Ответ 2

В качестве альтернативы вы можете использовать встроенную базу данных javascript. Таким образом вам просто нужно объявить базу данных как зависимость в ваших package.json и require() в вашем приложении.

Отметьте NeDB (который я написал) или nStore, например.

Ответ 3

Для моей архитектуры синхронный better-sqlite3 оказался лучше:

https://www.npmjs.com/package/better-sqlite3

  • Полная поддержка транзакций
  • Подходит для производительности, эффективности и безопасности
  • Простой в использовании синхронный API (быстрее, чем асинхронный API)
  • Поддержка пользовательских SQL-функций
  • Поддержка 64-битного целого (невидимая, пока вам это не понадобится)

Ответ 4

Клиент SQLite для Node.js Apps/w встроенный API миграции на основе SQL

NPM version NPM downloads Online Chat

import express from 'express';
import db from 'sqlite';                                       // <=
import Promise from 'bluebird';

const app = express();
const port = process.env.PORT || 3000;

app.get('/posts', async (req, res, next) => {
  try {
    const posts = await db.all('SELECT * FROM Post LIMIT 10'); // <=
    res.send(posts);
  } catch (err) {
    next(err);
  }
});

Promise.resolve()
  // First, try to open the database
  .then(() => db.open('./database.sqlite', { Promise })        // <=
  // Update db schema to the latest version using SQL-based migrations
  .then(() => db.migrate({ force: 'last' })                    // <=
  // Display error message if something went wrong
  .catch((err) => console.error(err.stack))
  // Finally, launch the Node.js app
  .finally(() => app.listen(port));

ПРИМЕЧАНИЕ. Пример выше работает только с Node.js v6 и более новым (при условии, что import и async/await особенности языка, используемые в код транслируется с помощью Babel). Для более ранних версий Node.js используйте var db = require('sqlite/legacy');.

Ответ 5

Модуль Grumdrig, похоже, наиболее употребителен для Qaru и других сайтов.

Кроме того, документация довольно хорошая: http://github.grumdrig.com/node-sqlite/

У меня довольно мало опыта работы с Node SQLite, но сообщество, похоже, выбрало.