当我尝试从mongoDB中提取图像数据并尝试将其转换为base64时,我遇到了缓冲区溢出问题。我知道在mongo中存储图像不是最佳的,但我想这样做,只是为了做到这一点。
这是我收到的错误:
'start-server' errored after 6.28 s
[22:21:05] Error: stdout maxBuffer exceeded
at Socket.<anonymous> (child_process.js:255:14)
at emitOne (events.js:90:13)
at Socket.emit (events.js:182:7)
at readableAddChunk (_stream_readable.js:153:18)
at Socket.Readable.push (_stream_readable.js:111:10)
at Pipe.onread (net.js:529:20)
以下是调用和转换数据的路径:
app.get('/api/photos', function (req, res) {
var photos = Photo.find({}, function(err, photos) {
if(photos.length != 0){
var photosData = [];
for(var i = 0; i < photos.length; i++){
var thumb = new Buffer(photos[i].img.data).toString('base64');
photosData.push(thumb);
}
res.json({info: 'it worked',
photos: photosData
});
}else{
res.json({info: 'it worked',
photos: false
});
}
});
})
答案 0 :(得分:0)
请参阅此问题以获取maxBuffers:Reading binary data from a child process in Node.js
这实际上来自我的gulp文件,因为我有一个exec任务正在启动我的服务器。必须将maxBuffer添加到该子进程,如下所示。
Repository