Javascript Cassandra:使用node.js将二进制blob写入表

Javascript Cassandra:使用node.js将二进制blob写入表,javascript,node.js,cassandra,Javascript,Node.js,Cassandra,我正试图让我的node.js应用程序读取一个文件,然后将其添加到表中,但我无法理解它 这是表格信息 CREATE TABLE tracking.tracking_data ( first_name text, last_name text, timestamp timestamp, heat double, location text, m blob, speed double, telepathy_powers int, PRIMARY KEY ((first_name, last_name)

我正试图让我的node.js应用程序读取一个文件,然后将其添加到表中,但我无法理解它

这是表格信息

CREATE TABLE tracking.tracking_data (
first_name text,
last_name text,
timestamp timestamp,
heat double,
location text,
m blob,
speed double,
telepathy_powers int,
PRIMARY KEY ((first_name, last_name), timestamp)
下面是node.js代码:

var populateData = function(first_name, last_name, timestamp, heat, location, speed, telepathy_powers, file) {
fs.readFile(file, 'binary', function(err, data) {
if (err) {
return console.log(err);
} else {
var client = new cassandra.Client({
contactPoints: ['node1', 'node2', 'node3'],
keyspace: 'tracking'
});
var query = 'INSERT INTO tracking_data (first_name,last_name,timestamp,heat,location,m,speed,telepathy_powers) VALUES (?,?,?,?,?,?,?,?);';
const parms = [first_name, last_name, timestamp, heat, location, data, speed, telepathy_powers];
client.execute(query, parms, {
prepare: true
}, function(err, result) {
if (err) {
console.log('\n' + err);
}
});
}
});
错误是:

TypeError: Not a valid blob, expected Buffer obtained 'root:x:0:0:root:/root:/bin/ash\nbin:x:1:1:bin:/bin:/sbin/nologin\ndaemon:x:2:2:daemon:/sbin:/sbin/nologin\nadm:x:3:4:adm:/var/adm:/sbin/nologin\nlp:x:4:7:lp:/var/spool/lpd:/sbin/nologin\nsync:x:5:0:sync:/sbin:/bin/sync\nshutdown:x:6:0:shutdown:/sbin:/sbin/shutdown\nhalt:x:7:0:halt:/sbin:/sbin/halt\nmail:x:8:1

我怀疑问题是因为您为文件指定了编码,即使它是二进制的。Cassandra驱动程序需要
Buffer
类型,当仅使用文件名和处理程序调用
fs.readFile
时返回该类型,而不进行编码(请参见)。

如何?我看没有地方可以做这件事。它甚至不会让我对你的答案投赞成票,因为这是一个新帐户?如果不起作用-那就让它保持原样。。。