0

I am using datastax cassandra-driver to make a database. This is connect-database:

import { require } from "./requirejs.mjs";
export async function run() {
   const { Client } = require("cassandra-driver");

const client1 = new Client({
  cloud: {
    get secureConnectBundle(){
       return "secure-connect-amazonfeud.zip"}
  },
  credentials: {
    get username(){
      return "<my username>"},
    get password(){
      return "<my password>"}
  },
});
await client1.connect();

const rs = await client1.execute("SELECT * FROM feud.users");
const results = await client1.execute("update feud.users set score=250 where id=1")
console.log(rs['rows'][0])
console.log(`Your cluster returned ${rs.rowLength} row(s)`);

await client1.shutdown();
}

This is main.js:

import { run } from "./connect-database.mjs";

run()

When I run connect-database.mjs, it works, but when I run main.js it gives me error "Uncaught Error Error: Module name "cassandra-driver" has not been loaded yet for context: _. Use require([]) https://requirejs.org/docs/errors.html#notloaded"

When I change the format to be require[], it says "Uncaught TypeError TypeError: Client is not a constructor"

Please help

Erick Ramirez
  • 13,964
  • 1
  • 18
  • 23
Jojo Momo
  • 21
  • 1
  • 9

1 Answers1

0

If you're using a custom require in order to require cassandra-driver, you don't need to do that. Client function is exposed using module.exports in cassandra-driver so you can use a simple import.

An example that worked for me:

cassandraDriverTest.mjs

import { Client } from 'cassandra-driver';
import { inspect } from 'util';

const client = new Client({
  contactPoints: ['cp'],
  localDataCenter: 'dc1',
  keyspace: 'ks'
});

const query = '<query>';

client.execute(query)
  .then(result => console.log('User with email %s', result.rows[0].some_data,));
console.log(inspect(client));
Rahul Sharma
  • 5,562
  • 4
  • 24
  • 48