簡體   English   中英

如何使用nodejs在cassandra中插入媒體文件?

[英]how to insert media files in cassandra using nodejs?

我們如何使用 node js 將圖像插入到 Cassandra 數據庫中,我嘗試過以下操作。

我已經使用 base64(image) 來存儲圖像,但我需要將 base64 存儲在 Cassandra 的 blob 數據類型中。 我知道 Cassandra 中的 blob 數據類型相當於節點 js 中的 Buffer 數據類型。


var cassandra=require('cassandra-driver');
var client=new cassandra.Client({contactPoints:['localhost'],localDataCenter:"datacenter1",keyspace:"employee"});
var path=require('path');
var fs=require('fs');
var base64 = fs.readFileSync(path.resolve(__dirname + '/download.jpeg'), 'base64');

var imageBuffer = new Buffer(base64, 'base64');





var query="INSERT INTO photo(id,image) VALUES ('ranjith',imageBuffer)";

client.execute(query,function(err){
   if(err) {
      console.log(err);
   } else {
      console.log('success');
   }
});

這是錯誤消息:

> { ResponseError: line 1:57 no viable alternative at input ')'
> (...id,image) VALUES ('ranjith',[imageBuffer]))
>     at FrameReader.readError (/home/innvoot/Desktop/cassandra_and_node_trails/node_modules/cassandra-driver/lib/readers.js:326:15)
>     at Parser.parseBody (/home/innvoot/Desktop/cassandra_and_node_trails/node_modules/cassandra-driver/lib/streams.js:194:66)
>     at Parser._transform (/home/innvoot/Desktop/cassandra_and_node_trails/node_modules/cassandra-driver/lib/streams.js:137:10)
>     at Parser.Transform._read (_stream_transform.js:186:10)
>     at Parser.Transform._write (_stream_transform.js:174:12)
>     at doWrite (_stream_writable.js:396:12)
>     at writeOrBuffer (_stream_writable.js:382:5)
>     at Parser.Writable.write (_stream_writable.js:290:11)
>     at Protocol.ondata (_stream_readable.js:639:20)
>     at emitOne (events.js:116:13)   name: 'ResponseError',   info: 'Represents an error message from the server',   message: 'line 1:57
> no viable alternative at input \')\' (...id,image) VALUES
> (\'ranjith\',[imageBuffer]))',   code: 8192,   coordinator:
> '127.0.0.1:9042',   query: 'INSERT INTO photo(id,image) VALUES
> (\'ranjith\',imageBuffer)' }

我希望得到“成功”作為結果。

我不是 javascript 專家,但看到您的錯誤;

輸入 \\')\\' (...id,image) VALUES (\\'ranjith\\',[imageBuffer]))'

我覺得查詢語法可能有誤,可以試試

const query = 'INSERT INTO photo (id, image) VALUES (?, ?)';

client.execute(query, [ 'ranjith', imageBuffer ], { prepare: true }, function(err, result) {
  assert.ifError(err);
  console.log('Success');
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM