Если я правильно понимаю, у вас есть свой экспресс-сервер, и вы хотите включить в ответ посторонние изображения, скрывая URL источника
В простейшей форме каждый раз, когда кто-то запрашивает вашу страницу, вы получаете изображениеВы хотите, закодируйте его в base64
и включите этот base64 как src
для img
const express = require('express')
const fetch = require('node-fetch')
const app = express()
const port = 3000
app.get('/', (req, res) => {
fetch('https://www.gravatar.com/avatar/fdb4d2674d818861be4a4139469ebe59?s=48&d=identicon&r=PG&f=1')
.then(res => res.buffer())
.then(buffer => {
res.send(`
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<p>hello</p>
<img src="data:image\png;base64, ${buffer.toString('base64')}" alt="image">
</body>
</html>
`)
})
})
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
, в идеале вы должны создать отдельную конечную точку для этих изображений, а также кэшировать их (в памяти или на жестком диске). ) не перезагружать их каждый раз, когда они вам нужны