2014-02-13 11 views
-1

我想在node.js上響應客戶端的二進制數據。 但寫只能發送字符串或緩衝區。 如何向客戶端發送二進制文件。如何在node.js上響應來自sql查詢(如LONGBLOB類型)的二進制數據

dbconnect.selectBinary(conn,function(result) 
{ 
    //result is a binary from sql query. 
    response.write(result,"binary"); //I wanna write response a binary here 
    response.end(); 
} 
+0

緩衝區是二進制的,所以,如果結果是一個緩衝,將只要你的頭(未顯示)是正確的工作。 – dandavis

回答

0

如果我的結果對象有一個數據庫中的「標誌」 BLOB,我用這個代碼轉換成的NodeJS行話

result.logo = new Buffer(result.logo, 'binary'); 

或者有時候這個代碼(這是對我有用的時候。 ..):

result.logo = new Buffer(result.logo, 'binary').toString('base64'); 

此外,請注意,結果不是一個數組(有一個條目)。我實際的代碼是這樣的,即將從一個節點的MySQL直接打電話回來:

result[0].logo = new Buffer(result[0].logo, 'binary').toString('base64'); 
+0

它的作品完美!謝謝〜 –

相關問題