This commit is contained in:
parent
c0c0a3d5b0
commit
bde1fc4572
@ -4,9 +4,6 @@ FROM fascinated/docker-images:node-pnpm-latest AS base
|
||||
# Make sure you update this Dockerfile, the Dockerfile in the web workspace and copy that over to Dockerfile in the docs.
|
||||
|
||||
FROM base AS builder
|
||||
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
|
||||
RUN apk add --no-cache libc6-compat
|
||||
RUN apk update
|
||||
# Set working directory
|
||||
WORKDIR /app
|
||||
RUN pnpm install -g turbo
|
||||
|
@ -125,18 +125,16 @@ export default class ProxyRoute extends Route {
|
||||
try {
|
||||
const cachedRequest = cache.get<CachedRequest>(url);
|
||||
if (cachedRequest) {
|
||||
res
|
||||
.status(cachedRequest.status)
|
||||
.set(cachedRequest.headers)
|
||||
.json(cachedRequest.data);
|
||||
log(cachedRequest.nodeId, url, cachedRequest.status, true);
|
||||
logRequestToDatabase({
|
||||
nodeId: cachedRequest.nodeId,
|
||||
const { status, headers, data, nodeId } = cachedRequest;
|
||||
|
||||
res.status(status).set(headers).json(data);
|
||||
log(nodeId, url, status, true);
|
||||
return logRequestToDatabase({
|
||||
nodeId: nodeId,
|
||||
url,
|
||||
status: cachedRequest.status,
|
||||
status: status,
|
||||
cached: true,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
const node = nodeManager.getRandomNode();
|
||||
@ -150,29 +148,29 @@ export default class ProxyRoute extends Route {
|
||||
const before = Date.now();
|
||||
const response = await node.fetch(url);
|
||||
const nodeId = response.headers["x-proxy-node"];
|
||||
const data = response.data;
|
||||
const { status, headers, data } = response;
|
||||
|
||||
if (response.status === 500) {
|
||||
res.status(500).json(RouteMessages.internalServerError(data));
|
||||
return;
|
||||
}
|
||||
|
||||
log(nodeId, url, response.status, Date.now() - before);
|
||||
log(nodeId, url, status, Date.now() - before);
|
||||
logRequestToDatabase({
|
||||
nodeId,
|
||||
url,
|
||||
status: response.status,
|
||||
status: status,
|
||||
time: Date.now() - before,
|
||||
});
|
||||
cache.set(url, {
|
||||
nodeId: nodeId,
|
||||
status: response.status,
|
||||
headers: response.headers,
|
||||
status: status,
|
||||
headers: headers,
|
||||
data: data,
|
||||
} as CachedRequest);
|
||||
|
||||
// Send the response to the client
|
||||
res.status(response.status).set(response.headers).send(data);
|
||||
res.status(status).set(headers).send(data);
|
||||
} catch (ex: any) {
|
||||
res.status(500).json(RouteMessages.internalServerError(ex.message || ex));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user