尝试使用模板将文本和图像数据作为局部变量发送到服务器端呈现的页面。
我知道我必须将Content-Type设置为“ image / png”。
当所有其他变量均为文本时,如何为一个变量设置Content-Type?
非常感谢!
res.render('profile.html', { locals: {
tasks: tasks,
msgExists: '',
name: req.user.name,
email: req.user.email,
photo: req.user.photo //how to set Content-Type for this variable?
}});
答案 0 :(得分:0)
模板在服务器端呈现,然后发送到客户端。这意味着响应的内容类型是“ text / html”,而不是“ image / png”。
您的变量没有“ Content-Type”,因为它们不是HTML响应。如果您想在html中嵌入图像,并且知道其原始数据,通常看起来像这样:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="/>
现在,如果您以某种方式将图像数据(如base64部分之后的内容)存储在JS变量中,并且想要将其传递到模板渲染器以将该图像嵌入到生成的html中,则看起来像这样:
// node js code:
imgData = "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";
res.render('my.template.html', {
imgData,
// whatever else ...
});
<!-- template code: -->
<img src="data:image/png;base64,{{imgData}}"/>
<!-- whatever else -->
当然,这可能会根据您存储图像数据的确切格式而有所不同。