From 83e886b4f1c13f9036280a2e88c6024862315df4 Mon Sep 17 00:00:00 2001 From: chimurai <655241+chimurai@users.noreply.github.com> Date: Sat, 27 Apr 2024 20:37:15 +0000 Subject: [PATCH] docs(examples): next proxy https://nextjs.org/docs/pages/building-your-application/routing/api-routes https://github.com/chimurai/http-proxy-middleware/blob/example-nextjs/recipes/servers.md#nextjs --- examples/next-app/pages/api/_proxy.ts | 12 ++++++++++++ examples/next-app/pages/api/users.ts | 19 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 examples/next-app/pages/api/_proxy.ts create mode 100644 examples/next-app/pages/api/users.ts diff --git a/examples/next-app/pages/api/_proxy.ts b/examples/next-app/pages/api/_proxy.ts new file mode 100644 index 0000000..0062491 --- /dev/null +++ b/examples/next-app/pages/api/_proxy.ts @@ -0,0 +1,12 @@ +import type { NextApiRequest, NextApiResponse } from 'next'; +import { createProxyMiddleware } from '../../../../dist'; + +// singleton +export const proxyMiddleware = createProxyMiddleware({ + target: 'http://jsonplaceholder.typicode.com', + changeOrigin: true, + pathRewrite: { + '^/api/users': '/users', + }, + logger: console, +}); diff --git a/examples/next-app/pages/api/users.ts b/examples/next-app/pages/api/users.ts new file mode 100644 index 0000000..2a5e02b --- /dev/null +++ b/examples/next-app/pages/api/users.ts @@ -0,0 +1,19 @@ +import type { NextApiRequest, NextApiResponse } from 'next'; +import { proxyMiddleware } from './_proxy'; + +export default function handler(req: NextApiRequest, res: NextApiResponse) { + proxyMiddleware(req, res, (result: unknown) => { + if (result instanceof Error) { + throw result; + } + }); +} + +export const config = { + api: { + externalResolver: true, + // Uncomment to fix stalled POST requests + // https://github.com/chimurai/http-proxy-middleware/issues/795#issuecomment-1314464432 + bodyParser: false, + }, +};