Socket
Socket
Sign inDemoInstall

better-sqlite3

Package Overview
Dependencies
3
Maintainers
1
Versions
126
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

better-sqlite3


Version published
Weekly downloads
566K
increased by2.78%
Maintainers
1
Created
Weekly downloads
 

Package description

What is better-sqlite3?

better-sqlite3 is a fast and simple SQLite3 library for Node.js applications. It provides a synchronous API for interacting with SQLite databases, making it easier to write and maintain code. The library is designed to be efficient and easy to use, with a focus on performance and simplicity.

What are better-sqlite3's main functionalities?

Database Connection

This feature allows you to establish a connection to an SQLite database. The `Database` constructor takes the path to the database file as an argument.

const Database = require('better-sqlite3');
const db = new Database('my-database.db');

Executing SQL Statements

This feature allows you to prepare and execute SQL statements. The `prepare` method creates a prepared statement, and the `all` method executes the statement and returns all matching rows.

const stmt = db.prepare('SELECT * FROM users WHERE age > ?');
const users = stmt.all(18);

Inserting Data

This feature allows you to insert data into the database. The `run` method executes the prepared statement with the provided parameters.

const insert = db.prepare('INSERT INTO users (name, age) VALUES (?, ?)');
const info = insert.run('John Doe', 30);

Transaction Management

This feature allows you to manage transactions. The `transaction` method creates a transaction that can execute multiple statements atomically.

const insert = db.prepare('INSERT INTO users (name, age) VALUES (?, ?)');
const insertMany = db.transaction((users) => {
  for (const user of users) insert.run(user.name, user.age);
});
insertMany([{ name: 'Alice', age: 25 }, { name: 'Bob', age: 35 }]);

Custom Functions

This feature allows you to define custom SQL functions. The `function` method registers a new function that can be used in SQL statements.

db.function('add', (a, b) => a + b);
const result = db.prepare('SELECT add(2, 3)').get();

Other packages similar to better-sqlite3

Readme

Source

better-sqlite3 Build Status

The fastest and simplest library for SQLite3 in Node.js.

  • Full transaction support
  • Geared for performance and efficiency
  • Easy-to-use synchronous API (faster than an asynchronous API... yes, you read that correctly)
  • 64-bit integer support (invisible until you need it)

Installation

npm install --save better-sqlite3

Usage

var Database = require('better-sqlite3');
var db = new Database('foobar.db', options);

db.on('open', function () {
	var row = db.prepare('SELECT * FROM users WHERE id=?').get(userId);
	console.log(row.firstName, row.lastName, row.email);
});

Why should I use this instead of node-sqlite3?

  • node-sqlite3 uses asynchronous APIs for tasks that don't wait for I/O. That's not only bad design, but it wastes tons of resources.
  • node-sqlite3 exposes low-level (C language) memory management functions. better-sqlite3 does it the JavaScript way, allowing the garbage collector to worry about memory management.
  • better-sqlite3 is simpler to use, and it provides nice utilities for some operations that are very difficult or impossible in node-sqlite3.
  • better-sqlite3 is much faster than node-sqlite3 in most cases, and just as fast in all other cases.

Documentation

License

MIT

Keywords

FAQs

Last updated on 08 Oct 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc