-
Notifications
You must be signed in to change notification settings - Fork 20
Open
Labels
good first issueGood for newcomersGood for newcomersquestionFurther information is requestedFurther information is requested
Description
I was using this module like so:
import httpProxyMiddleware from 'next-http-proxy-middleware';
import { NextApiRequest, NextApiResponse } from 'next';
import { getSession } from '@auth0/nextjs-auth0';
import * as Sentry from '@sentry/node';
import { initSentry } from 'src/utils/sentry';
export default async (req: NextApiRequest, res: NextApiResponse) => {
const session = getSession(req, res);
return new Promise((resolve) =>
httpProxyMiddleware(req, res, {
target: process.env.NEXT_PUBLIC_API_BASE_URL,
headers: { Authorization: `Bearer ${session?.idToken}`, 'Content-Type': 'application/json-patch+json' },
}).catch(async (error) => {
initSentry();
Sentry.captureException(error);
await Sentry.flush(2000);
return resolve(error);
})
);
};
And as you can see in memory usage graph it is spikes and some server restarts.
But when I switched to middleware like so
import { NextApiRequest, NextApiResponse } from 'next';
import { getSession } from '@auth0/nextjs-auth0';
import { createProxyMiddleware } from 'http-proxy-middleware';
import * as Sentry from '@sentry/node';
import { initSentry } from 'src/utils/sentry';
export const config = {
api: {
bodyParser: false,
externalResolver: true,
},
};
export default createProxyMiddleware({
target: process.env.NEXT_PUBLIC_API_BASE_URL,
headers: {
'Content-Type': 'application/json-patch+json',
},
selfHandleResponse: false,
changeOrigin: true,
xfwd: true,
secure: true,
proxyTimeout: 3000,
ws: true,
onProxyReq: (proxyReq, req: Request & NextApiRequest, res: Response & NextApiResponse) => {
proxyReq.setHeader('Authorization', `Bearer ${getSession(req, res)?.idToken}`);
},
onError: (err, req: Request & NextApiRequest, res: Response & NextApiResponse) => {
initSentry();
Sentry.captureException(err);
Sentry.flush(2000);
res.end('Something went wrong.');
},
});
the memory usage becomes stable. Also got correct response headers from API like 404
stegano
Metadata
Metadata
Assignees
Labels
good first issueGood for newcomersGood for newcomersquestionFurther information is requestedFurther information is requested