首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用nano将二进制附件插入到CouchDB

使用nano将二进制附件插入到CouchDB
EN

Stack Overflow用户
提问于 2013-10-28 03:17:26
回答 1查看 1.1K关注 0票数 1

我正在尝试使用nano在CouchDB中插入一个二进制附件。我有一个由http.request返回的data格式的JPG。

我用nano保存它,如下所示

代码语言:javascript
复制
db.attachment.insert( id, 'content', self._data, contentType, {rev: rev}, function(err, body) { 
        callback();
});

但当我尝试通过web浏览器查看它时,图像被损坏了。

该文件充满了UTF-8转义字符,当我使用CURL将其拉入时可以看到:

代码语言:javascript
复制
$ 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\

内容没有损坏,因为如果我将其保存到文件中,我可以看到图像。

代码语言:javascript
复制
var fs = require('fs');
fs.writeFile('logo.jpg', data, 'binary', function(err){
  if (err) throw err
  console.log('File saved.')
});

什么才是正确的方法呢?

EN

回答 1

Stack Overflow用户

发布于 2013-10-28 04:12:45

好的,这个问题可以很接近。我的问题的答案是Buffer:

代码语言:javascript
复制
db.attachment.insert( id, 'content', new Buffer(self._data, "binary"), contentType, {rev: rev}, function(err, body) { 
        callback();
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19622327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档