Предоставление PNG Base64 с помощью Express
У моего сервера Node.js есть что-то похожее на следующее:
app.get("/api/id/:w", function(req, res) {
var data = getIcon(req.params.w);
});
Здесь data
- это строка, содержащая представление Base64 изображения PNG. Есть ли способ отправить это клиенту, обратившись к маршруту, закодированному и отображаемому в виде изображения (например, чтобы URL-адрес мог использоваться в теге img
)?
Ответы
Ответ 1
Да, вы можете закодировать строку base64 и вернуть ее клиенту как изображение:
server.get("/api/id/:w", function(req, res) {
var data = getIcon(req.params.w);
var img = new Buffer(data, 'base64');
res.writeHead(200, {
'Content-Type': 'image/png',
'Content-Length': img.length
});
res.end(img);
});
Ответ 2
Сначала мне нужно было немного манипулировать, чтобы получить шахту в правильном формате, но это сработало отлично:
var base64Data = data.replace(/^data:image\/png;base64,/, '');