我是卡桑德拉的新手,刚刚安装,想试一试.因此,我try 了以下代码:
import cassandra from 'cassandra-driver';
const client = new cassandra.Client({
contactPoints: ['localhost'],
localDataCenter: 'datacenter1',
keyspace: 'ks1'
});
const query1 = "CREATE TABLE users(name text , emailtext, PRIMARY_KEY(email, name)) VALUES('someone' , 's@s.com')";
const query2 = 'SELECT name, email FROM users WHERE name = ?';
await client.execute(query1);
await client.execute(query2)
.then(result => console.log('User with email %s', result.rows[0].email));
但我得到的结果是:
> cassandra_test@1.0.0 start
> ts-node-esm src/index.ts
/home/a/bars/cassandra_test/node_modules/cassandra-driver/lib/readers.js:389
const err = new errors.ResponseError(code, message);
^
ResponseError: Keyspace 'ks1' does not exist
at FrameReader.readError (/home/a/bars/cassandra_test/node_modules/cassandra-driver/lib/readers.js:389:17)
at Parser.parseBody (/home/a/bars/cassandra_test/node_modules/cassandra-driver/lib/streams.js:209:66)
at Parser._transform (/home/a/bars/cassandra_test/node_modules/cassandra-driver/lib/streams.js:152:10)
at Parser.Transform._write (node:internal/streams/transform:175:8)
at writeOrBuffer (node:internal/streams/writable:392:12)
at _write (node:internal/streams/writable:333:10)
at Parser.Writable.write (node:internal/streams/writable:337:10)
at Protocol.ondata (node:internal/streams/readable:766:22)
at Protocol.emit (node:events:513:28)
at Protocol.emit (node:domain:489:12) {
info: 'Represents an error message from the server',
code: 8704
}
问题出在哪里?我该如何解决它?
PS:我用的是Ubuntu 22.04和NodeJS版本9.
EDIT
:我try 创建KEYSPACE
,然后编辑代码如下:
import cassandra from 'cassandra-driver';
const client = new cassandra.Client({
contactPoints: ['localhost'],
localDataCenter: 'datacenter1',
keyspace: 'ks1'
});
const query0 = "CREATE TABLE users(name text, email text, PRIMARY_KEY(email, name))";
const query1 = "INSERT INTO users(name, email) VALUES ('someone' , 's@s.com')";
const query2 = "SELECT name, email FROM users WHERE name = someone";
await client.execute(query0 );
await client.execute(query1);
await client.execute(query2)
.then(result => console.log('User with email %s', result.rows[0].email));
但仍然会出现另一个错误:
> cassandra_test@1.0.0 start
> ts-node-esm src/index.ts
/home/a/bars/cassandra_test/node_modules/cassandra-driver/lib/readers.js:389
const err = new errors.ResponseError(code, message);
^
ResponseError: line 1:53 no viable alternative at input '(' (... text, email text, PRIMARY_KEY[(]...)
at FrameReader.readError (/home/a/bars/cassandra_test/node_modules/cassandra-driver/lib/readers.js:389:17)
at Parser.parseBody (/home/a/bars/cassandra_test/node_modules/cassandra-driver/lib/streams.js:209:66)
at Parser._transform (/home/a/bars/cassandra_test/node_modules/cassandra-driver/lib/streams.js:152:10)
at Parser.Transform._write (node:internal/streams/transform:175:8)
at writeOrBuffer (node:internal/streams/writable:392:12)
at _write (node:internal/streams/writable:333:10)
at Parser.Writable.write (node:internal/streams/writable:337:10)
at Protocol.ondata (node:internal/streams/readable:766:22)
at Protocol.emit (node:events:513:28)
at Protocol.emit (node:domain:489:12) {
info: 'Represents an error message from the server',
code: 8192,
coordinator: '127.0.0.1:9042',
query: 'CREATE TABLE users(name text, email text, PRIMARY_KEY(email, name))'
}
我不知道新的错误有什么问题?