Подтвердить что ты не робот

Предоставление PNG Base64 с помощью Express

У моего сервера Node.js есть что-то похожее на следующее:

app.get("/api/id/:w", function(req, res) {
    var data = getIcon(req.params.w);
});

Здесь data - это строка, содержащая представление Base64 изображения PNG. Есть ли способ отправить это клиенту, обратившись к маршруту, закодированному и отображаемому в виде изображения (например, чтобы URL-адрес мог использоваться в теге img)?

4b9b3361

Ответ 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,/, '');