Interacting with ScyllaDB in Node.js

ScyllaDB is a high-performance NoSQL database compatible with Apache Cassandra. Thanks to the DataStax cassandra-driver, you can interact with ScyllaDB from Node.js applications easily and efficiently.

Prerequisites

  • Node.js installed
  • A running instance of ScyllaDB (local or remote)
  • NPM or Yarn for package management

Driver Installation

First, install the official Cassandra driver for Node.js:

npm install cassandra-driver

Connecting to ScyllaDB

You can connect to ScyllaDB by specifying the contact points and the data center:


const cassandra = require('cassandra-driver');

const client = new cassandra.Client({
  contactPoints: ['127.0.0.1'],
  localDataCenter: 'datacenter1',
  keyspace: 'example'
});

async function createConnection() {
  try {
    await client.connect();
    console.log('Successfully connected to ScyllaDB');
  } catch (err) {
    console.error('Connection error:', err);
  }
}

createConnection();

Executing Queries

Once connected, you can execute queries asynchronously:


async function insertData() {
  const query = 'INSERT INTO users (id, name, email) VALUES (?, ?, ?)';
  const params = [cassandra.types.Uuid.random(), 'Mario Rossi', 'mario@example.com'];

  try {
    await client.execute(query, params, { prepare: true });
    console.log('Data inserted successfully');
  } catch (err) {
    console.error('Error during insertion:', err);
  }
}

insertData();

Reading Data

To read data:


async function getData() {
  const query = 'SELECT id, name, email FROM users';

  try {
    const result = await client.execute(query);
    result.rows.forEach(row => {
      console.log(row.id, row.name, row.email);
    });
  } catch (err) {
    console.error('Error during data reading:', err);
  }
}

getData();

Conclusion

By using the Cassandra driver for Node.js, you can easily integrate ScyllaDB into your JavaScript applications. Thanks to support for asynchronous queries and large-scale operations, ScyllaDB is well suited for high-performance scenarios and large data volumes.

Back to top