Skip to content

Commit c806ec2

Browse files
committed
Example: add middleware geolocation test
1 parent 1f57e3d commit c806ec2

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

example/middleware.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,22 @@ export async function middleware(request) {
2525
console.log(await fetch("https://webhook.site/facbcacc-08f2-4fb1-b67f-a26e3382b64e"));
2626
return NextResponse.next();
2727
}
28+
if (request.nextUrl.pathname === "/middleware-geolocation") {
29+
const { nextUrl: url, geo } = request
30+
console.log("== request", request);
31+
console.log("== geo", geo);
32+
const country = geo.country || "US"
33+
const city = geo.city || "San Francisco"
34+
const region = geo.region || "CA"
35+
36+
url.searchParams.set('country', country)
37+
url.searchParams.set('city', city)
38+
url.searchParams.set('region', region)
39+
40+
return NextResponse.rewrite(url);
41+
}
2842
}
2943

3044
export const config = {
31-
matcher: ["/middleware-redirect", "/middleware-set-header", "/middleware-fetch"],
45+
matcher: ["/middleware-redirect", "/middleware-set-header", "/middleware-fetch", "/middleware-geolocation"],
3246
}

example/pages/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ export default function Home({}) {
3333
<Link href={`/api-route`}>API Route</Link><br />
3434
<Link href={`/middleware-redirect`}>Middleware — redirect</Link><br />
3535
<Link href={`/middleware-set-header`}>Middleware — set header</Link><br />
36+
<Link href={`/middleware-geolocation`}>Middleware — geolocation</Link><br />
3637
<Link href={`/image-optimization-imported`}>Image Optimization — imported image</Link><br />
3738
<Link href={`/image-optimization-remote`}>Image Optimization — remote image</Link><br />
3839
<Link href={`/image-html-tag`}>Image using html image tag</Link><br />
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { useRouter } from "next/router";
2+
import Layout from "../components/layout";
3+
4+
export default function Page() {
5+
return (
6+
<Layout>
7+
<article>
8+
<h1>
9+
Middleware - geolocation
10+
</h1>
11+
<hr />
12+
<p>
13+
<b>Test 1:</b>
14+
URL query contains country, city, and region: {JSON.stringify(useRouter().query)}
15+
</p>
16+
</article>
17+
</Layout>
18+
);
19+
}

0 commit comments

Comments
 (0)