nanoでCouchDBにバイナリアタッチメントを挿入しようとしています。data
から返された JPG がありhttp.request
ます。
次のように保存しnano
ます
db.attachment.insert( id, 'content', self._data, contentType, {rev: rev}, function(err, body) {
callback();
});
しかし、Webブラウザで表示しようとすると、画像が壊れています。
ファイルは UTF-8 エスケープ文字でいっぱいで、CURL でプルすると表示されます。
$ curl http://127.0.0.1:5984/web-crawler/doc-test.jpg/content
"ÿØÿà\u0000\u0010JFIF\u0000\u0001\u0001\u0001\u0000H\u0000H\u0000\u0000ÿâ\fXICC_PROFILE\u0000\u0001\u0001\u0000\u0000\fHLino\u0002\u0010\u0000\u0000mntrRGB XYZ \u0007Î\u0000\u0002\u0000\t\u0000\u0006\u00001\u0000\u0000acspMSFT\u0000\u0000\u0000\u0000IEC sRGB\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000öÖ\u0000\u0001\u0000\u0000\u0000\u0000Ó-HP \u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\
ファイルに保存すると画像が表示されるため、コンテンツは破損していません。
var fs = require('fs');
fs.writeFile('logo.jpg', data, 'binary', function(err){
if (err) throw err
console.log('File saved.')
});
それを行う正しい方法は何ですか?