如何将缓冲区图像数据从Node JS发送到EJS模板

时间:2020-09-15 14:41:06

标签: node.js ejs

我正在练习使用节点js从数据库上载和获取图像。上载部分执行得很好,但是获取部分出现了一些问题,获取图像的代码为app.get('/images', async (req, res) => { const img = await image(image is the model with type of buffer).find({}); res.render('image', { img }) }。 ejs模板部分为<% img.forEach(i => { <img src="data:img/png;base64,<%= i.avatar(avatar is property on the image model) %>"> }。 有人可以告诉我怎么做吗?

1 个答案:

答案 0 :(得分:0)

您可能应该将avatar缓冲区映射到一个base64编码的字符串,并将其传递给ejs-template:

app.get('/images', async (req, res) => {
    const img = await image().find({});
    img.avatar = Buffer.from(img.avatar).toString('base64');
    res.render('image', {img});
});