我有一个包含两个字段的架构-name
和file
。
file
是Binary
类型,而name
是String
我使用此架构将图像另存为数据库中的文档
在保存图像时没有出现问题-我不确定以后如何阅读。主要建议是能够使用findOne
按文件名搜索文件,然后使用pipe
或其他可能可行的解决方案将其流式传输到响应-将图像显示给客户端<img/>
标签。我试图将文件转换为base64
,然后发送res.send('data:image/png;base64,${file.file}')
之类的东西,但运气不佳。
*请注意,由于我在文档中有两个字段(name
和file
),出于明显的原因,我只需要流file
这是我获取文件的GET请求:
router.get('/:url',(req, res) => {
const url = req.params.url;
console.log(url)
console.log('streaming file')
File.
findOne({ name:url}, 'file').
cursor().
on('data', (doc) => {
console.log('doc', doc.file);
res.send(doc.file)
}).
on('end', () => { console.log('Done!'); });
})
this无济于事,因为它用于流式传输文件,但没有路径。我的文件存储在数据库中