Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
nextjs-current-url
Advanced tools
Quickly get the current URL or route in Next.js client & server environments ✨
Quickly get the current URL or route in Next.js client & server environments ✨
nextjs-current-url
has a useUrl
hook that quickly gives you the current URL in a browser-rendered component.
It returns a URL
object.
URL
let's you easily access specific parts of the URL.
useUrl
works in both pages and app router.
Example:
import { useUrl } from 'nextjs-current-url';
import Head from 'next/head';
export default function Home() {
// 👇 useUrl() returns `null` until hydration, so plan for that with `??`
const { href: currentUrl, pathname } = useUrl() ?? {};
return (
<>
<Head>
<title>Next.js - Coding Beauty</title>
<meta name="description" content="Next.js Tutorials by Coding Beauty" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="icon" href="/favicon.png" />
</Head>
<main>
Welcome to Coding Beauty 😄
<br />
<br />
URL: <b>{currentUrl}</b>
<br />
pathname: <b>{pathname}</b>
</main>
</>
);
}
Result:
To use nextjs-current-url
in getServerSideProps
, call the getUrl
function, passing the context object's req
property.
Example:
import { NextPageContext } from 'next';
import Head from 'next/head';
import { getUrl } from 'nextjs-current-url/server';
export function getServerSideProps(context: NextPageContext) {
const url = getUrl({ req: context.req });
return {
props: {
url: url.href,
},
};
}
export default function Home({ url }: { url: string }) {
const urlObj = new URL(url);
const { pathname } = urlObj;
return (
<>
<Head>
<title>Next.js - Coding Beauty</title>
<meta name="description" content="Generated by create next app" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="icon" href="/favicon.png" />
</Head>
<main>
Welcome to Coding Beauty 😃
<br />
<br />
URL: <b>{url}</b>
<br />
Route: <b>{pathname}</b>
</main>
</>
);
}
Result:
next-js-current-url
also works in Next.js middleware files.
Call getUrl
and pass the NextRequest
object in the middleware function.
src/middleware.ts
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
import { getUrl } from 'nextjs-current-url/server';
import { getSession } from '@/lib/session';
export async function middleware(request: NextRequest) {
const { href, orgin } = getUrl({ req: request });
const session = await getSession(request);
if (!href.startsWith('/signin') && !session.user) {
const signinUrl = new URL('/signin', origin);
signinUrl.searchParams.set('continue', href);
return NextResponse.redirect(signinUrl);
}
}
export const config = {
matcher: '/app/:path*',
};
FAQs
Quickly get the current URL or route in Next.js client & server environments ✨
The npm package nextjs-current-url receives a total of 2,173 weekly downloads. As such, nextjs-current-url popularity was classified as popular.
We found that nextjs-current-url demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.