Nodejs Cassandra数据库操作插件node-cassandra的使用
Nodejs Cassandra数据库操作插件node-cassandra的使用node-cassandra-cql
是一个用于 Node.js 的 CQL(Cassandra Query Language)驱动程序,用于与 Apache Cassandra 数据库进行交互。下面是一个基本的使用示例,包括如何安装、连接到 Cassandra 集群、执行查询等。
1. 安装
首先,你需要安装 node-cassandra-cql
模块。你可以通过 npm 来安装:
npm install node-cassandra-cql
2. 连接到 Cassandra 集群
在你的 Node.js 脚本中,你可以这样初始化和连接到 Cassandra 集群:
const cassandra = require('cassandra-driver');
// 创建客户端实例
const client = new cassandra.Client({
contactPoints: ['127.0.0.1'], // Cassandra 节点地址
localDataCenter: 'datacenter1', // 数据中心名称
keyspace: 'testkeyspace' // 默认的 keyspace
});
client.connect((err) => {
if (err) {
console.error("连接错误:", err);
} else {
console.log("成功连接到 Cassandra");
}
});
3. 执行查询
你可以使用客户端对象来执行 CQL 查询。以下是一些常见的操作:
插入数据
const query = 'INSERT INTO users (id, name, age) VALUES (?, ?, ?)';
const params = [1, 'John Doe', 42];
client.execute(query, params, { prepare: true }, (err) => {
if (err) {
console.error("插入数据时发生错误:", err);
} else {
console.log("数据插入成功");
}
});
查询数据
const query = 'SELECT * FROM users WHERE id = ?';
const params = [1];
client.execute(query, params, { prepare: true }, (err, result) => {
if (err) {
console.error("查询数据时发生错误:", err);
} else {
result.rows.forEach(row => {
console.log(`User ID: ${row.id}, Name: ${row.name}, Age: ${row.age}`);
});
}
});
更新数据
const query = 'UPDATE users SET age = ? WHERE id = ?';
const params = [43, 1];
client.execute(query, params, { prepare: true }, (err) => {
if (err) {
console.error("更新数据时发生错误:", err);
} else {
console.log("数据更新成功");
}
});
删除数据
const query = 'DELETE FROM users WHERE id = ?';
const params = [1];
client.execute(query, params, { prepare: true }, (err) => {
if (err) {
console.error("删除数据时发生错误:", err);
} else {
console.log("数据删除成功");
}
});
4. 关闭连接
当你的应用结束时,确保关闭与 Cassandra 的连接:
client.shutdown();
以上就是使用 node-cassandra-cql
库的基本步骤。请根据你的具体需求调整配置和查询语句。
嘿,想要用Node.js和Cassandra跳舞吗?那node-cassandra-cql
就是你的舞伴啦!首先,别忘了安装它:npm install node-cassandra-cql
。接着,让我们来一段简单的探戈:
var cassandra = require('node-cassandra-cql');
var client = new cassandra.Client({contactPoints: ['127.0.0.1'], keyspace: 'mykeyspace'});
client.connect(function (err) {
if (err) throw err;
console.log("我们跳得真好!");
var query = 'SELECT * FROM mytable';
client.execute(query, [], {prepare: true}, function (err, result) {
if (err) throw err;
console.log(result.rows);
// 舞会结束,优雅地退场
client.shutdown();
});
});
记住,每个查询都是一次旋转,确保你的代码流畅如舞步!祝你编程愉快!
node-cassandra-cql
是一个用于 Node.js 的 CQL (Cassandra Query Language) 操作库,但请注意,此库现已不维护。目前更为推荐的是 cassandra-driver
这个官方的驱动库。下面我会以 cassandra-driver
为例来介绍如何进行基本的CRUD操作。
首先,你需要安装 cassandra-driver
:
npm install cassandra-driver
接下来是一个简单的例子,展示如何连接到Cassandra数据库并执行基本的增删改查操作。
- 连接到Cassandra
const cassandra = require('cassandra-driver');
// 创建客户端实例
const client = new cassandra.Client({
contactPoints: ['127.0.0.1'], // Cassandra服务器地址
localDataCenter: 'datacenter1', // 数据中心名称
keyspace: 'test_keyspace' // 默认使用的keyspace
});
async function connect() {
await client.connect();
console.log("Connected to Cassandra");
}
connect().catch(err => console.error("There was an error:", err));
- 创建表
async function createTable() {
const query = `CREATE TABLE IF NOT EXISTS users (
id UUID PRIMARY KEY,
name text,
age int
)`;
await client.execute(query, [], { prepare: false });
console.log("Table created");
}
createTable().catch(err => console.error("There was an error:", err));
- 插入数据
async function insertUser(id, name, age) {
const query = 'INSERT INTO users (id, name, age) VALUES (?, ?, ?)';
const params = [id, name, age];
await client.execute(query, params, { prepare: true });
console.log("User inserted");
}
insertUser(cassandra.types.uuid(), "John Doe", 30).catch(err => console.error("There was an error:", err));
- 查询数据
async function getUserById(userId) {
const query = 'SELECT * FROM users WHERE id = ?';
const result = await client.execute(query, [userId], { prepare: true });
console.log(result.rows);
}
getUserById(cassandra.types.Uuid.random()).catch(err => console.error("There was an error:", err));
- 更新数据
async function updateUser(id, newName, newAge) {
const query = 'UPDATE users SET name = ?, age = ? WHERE id = ?';
await client.execute(query, [newName, newAge, id], { prepare: true });
console.log("User updated");
}
updateUser(cassandra.types.Uuid.random(), "Jane Doe", 28).catch(err => console.error("There was an error:", err));
- 删除数据
async function deleteUser(userId) {
const query = 'DELETE FROM users WHERE id = ?';
await client.execute(query, [userId], { prepare: true });
console.log("User deleted");
}
deleteUser(cassandra.types.Uuid.random()).catch(err => console.error("There was an error:", err));
- 关闭连接
async function closeConnection() {
await client.shutdown();
console.log("Connection closed");
}
closeConnection().catch(err => console.error("There was an error:", err));
请确保你的Cassandra数据库正在运行,并且配置了正确的IP地址和端口。这个示例展示了如何与Cassandra进行基础的交互,包括连接、创建表、插入、查询、更新和删除数据。