Added note on env vars (#31237)
This PR adds a note on how to access env vars in middleware ## Bug - [x] Related issues linked using fixes: #30612 - [ ] Integration tests added - [ ] Errors have helpful link attached, see `contributing.md` ## Feature - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [ ] Errors have helpful link attached, see `contributing.md` ## Documentation / Examples - [ ] Make sure the linting passes by running `yarn lint` Co-authored-by: Steven <229881+styfle@users.noreply.github.com>
This commit is contained in:
parent
e95c9caca3
commit
a371447555
1 changed files with 18 additions and 1 deletions
|
@ -25,7 +25,7 @@ The function can be a default export and as such, does **not** have to be named
|
|||
|
||||
The `NextRequest` object is an extension of the native [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request) interface, with the following added methods and properties:
|
||||
|
||||
- `cookies` - Has the cookies from the `Request`
|
||||
- `cookie` - Has the cookies from the `Request`
|
||||
- `nextUrl` - Includes an extended, parsed, URL object that gives you access to Next.js specific properties such as `pathname`, `basePath`, `trailingSlash` and `i18n`
|
||||
- `geo` - Has the geo location from the `Request`
|
||||
- `geo.country` - The country code
|
||||
|
@ -88,6 +88,23 @@ The introduction of the `307` status code means that the request method is prese
|
|||
|
||||
The `redirect()` method uses a `307` by default, instead of a `302` temporary redirect, meaning your requests will _always_ be preserved as `POST` requests.
|
||||
|
||||
### How do I access Environment Variables?
|
||||
|
||||
`process.env` can be used to access [Environment Variables](/docs/basic-features/environment-variables.md) from Middleware. These are evaluated at build time, so only environment variables _actually_ used will be included.
|
||||
|
||||
Any variables in `process.env` must be accessed directly, and **cannot** be destructured:
|
||||
|
||||
```ts
|
||||
// Accessed directly, and not destructured works. process.env.NODE_ENV is `"development"` or `"production"`
|
||||
console.log(process.env.NODE_ENV)
|
||||
// This will not work
|
||||
const { NODE_ENV } = process.env
|
||||
// NODE_ENV is `undefined`
|
||||
console.log(NODE_ENV)
|
||||
// process.env is `{}`
|
||||
console.log(process.env)
|
||||
```
|
||||
|
||||
## Related
|
||||
|
||||
<div class="card">
|
||||
|
|
Loading…
Reference in a new issue