代码可以发送一个图像文件来查看,但是当我想发送多个文件时,它会给出错误:
错误:发送后无法设置标头。
app.get('/api/upload', function (req, res) {
var arr = [];
var i =0;
gfs.files.find({}, {}).forEach(function (files) {
if (files.length === 0) {
return res.status(400).send({
message: 'File not found'
});
}
arr.push(files);
res.writeHead(200, {'Content-Type': arr[i].contentType});
var readstream = gfs.createReadStream({
filename: arr[i].filename
});
arr.splice(i, 1 );
readstream.on('data', function (data) {
res.write(data);
});
readstream.on('end', function () {
res.end();
});
readstream.on('error', function (err) {
console.log('An error occurred!', err);
throw err;
});
});
});
所以; 如何使代码发送所有图像以查看?一件一件,还是一件一件?
附言。splice 的原因是,forEach 推送第一项,第一和第二,第一和第二和第三等:
Value:
[ { _id: 5927bd80b4f177148865960d,
filename: '9m79o7R.jpg',
contentType: 'image/jpeg',
length: 796432,
chunkSize: 261120,
uploadDate: 2017-05-26T05:30:44.947Z,
aliases: null,
metadata: { objectId: '9m79o7R.jpg' },
md5: 'e58694132f00a7b5d2f623cdd45d36f6' } ]
Value:
[ { _id: 5927bd80b4f177148865960d,
filename: '9m79o7R.jpg',
contentType: 'image/jpeg',
length: 796432,
chunkSize: 261120,
uploadDate: 2017-05-26T05:30:44.947Z,
aliases: null,
metadata: { objectId: '9m79o7R.jpg' },
md5: 'e58694132f00a7b5d2f623cdd45d36f6' },
{ _id: 5927bdadb4f1771488659614,
filename: 'blue_sky-t2.jpg',
contentType: 'image/jpeg',
length: 43594,
chunkSize: 261120,
uploadDate: 2017-05-26T05:31:26.526Z,
aliases: null,
metadata: { objectId: 'blue_sky-t2.jpg' },
md5: 'feda400c51b0c37f7c3d2ba439f1c776' } ]