使用 express在服务器端做个头像的代理,
exp.get(’/avatar’, (request: any, response: any, next: express.NextFunction) => {
return avatarProxy(request, response, next);
});
function avatarProxy(req: express.Request, res: express.Response, next: express.NextFunction) {
const avatarUrl = req.query.url;
request
.get(avatarUrl)
.on('response', (response) => {
if (response.statusCode !== 200) {
return next('failed to load img');
}
let rawData = '';
response.setEncoding('binary');
response.on('data', (chunk) => {
rawData += chunk;
});
response.on('end', () => {
res.end(new Buffer(rawData, 'binary'));
});
});
}
就可以了,用户的头像地址存在数据库里变一下就行了
const random = new Random();
const server = random.pick(httpServers);
const avatarUrl = http://${server.clientHost}:${server.clientPort}/avatar?url=${account.avatar};