I'm using NextJS middleware and can get the nextUrl object from the request, which includes things like pathname, but how do I get query string parameters from within the middleware? I can see it comes back as part of the string returned by href which I could then parse myself but I was wondering if it is returned in an object of it's own?
e.g.
export const middleware = (request) => {
const { nextUrl: { query } } = request;
...
};
where query equals
{
param1: 'foo',
param2: 'bar',
etc.
}
nextUrl object already includes searchParams which is a valid URLSearchParams instance.
E.G. usage
export function middleware(req: NextRequest) {
if(req.nextUrl.searchParams.get('flag')) {
return NextResponse.rewrite('/feature);
}
}
As @j-cue said above but I also discovered you can get search from nextUrl.
e.g.
export const middleware = (request) => {
const { nextUrl: { search } } = request;
const urlSearchParams = new URLSearchParams(search);
const params = Object.fromEntries(urlSearchParams.entries());
};
You might want to just extract it from a location:
const urlSearchParams = new URLSearchParams(window.location.search);
const params = Object.fromEntries(urlSearchParams.entries());