我将 png 作为附件上传到 CouchDb 数据库。当我通过被褥查看它时,它很好,如果我尝试通过摇篮取回它,它就会损坏。我使用了 crade 附带的 crade-test.js 中的一个片段,并对其进行了一些修改:
var response = {};
var streamer = db.getAttachment(data.id,filename);
streamer.addListener('response', function (res) {
response.headers = res.headers;
response.headers.status = res.statusCode;
response.body = "";
});
streamer.addListener('data', function (chunk) { response.body += chunk; });
streamer.addListener('end', function () {
fs.writeFile('new-'+filename, response.body, function (err) {
if (err) throw err;
console.log('It\'s saved!');
});
});
结果是一个比输入大的损坏的 png。我在这里提供了一个工作示例:http: //jsfiddle.net/x8GZc/