Skip to content
This repository was archived by the owner on Apr 6, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions docs/content/3.api/1.composables/set-response-status.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# `setResponseStatus`

Nuxt provides composables and utilities for first-class server-side-rendering support.

You can use `setResponseStatus` to set the statusCode (and optionally the statusMessage) of the response.

`setResponseStatus` can only be called within component setup functions, plugins, and route middleware.

```js
// Set the status code to 404 for a custom 404 page
setResponseStatus(404)

// Set the status message as well
setResponseStatus(404, 'Page Not Found')
```

::alert{icon=πŸ‘‰}
In the browser, `setResponseStatus` will have no effect.
::
2 changes: 1 addition & 1 deletion packages/nuxt/src/app/composables/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ export { useFetch, useLazyFetch } from './fetch'
export type { FetchResult, UseFetchOptions } from './fetch'
export { useCookie } from './cookie'
export type { CookieOptions, CookieRef } from './cookie'
export { useRequestHeaders, useRequestEvent } from './ssr'
export { useRequestHeaders, useRequestEvent, setResponseStatus } from './ssr'
export { abortNavigation, addRouteMiddleware, defineNuxtRouteMiddleware, navigateTo, useRoute, useActiveRoute, useRouter } from './router'
export type { AddRouteMiddlewareOptions, RouteMiddleware } from './router'
10 changes: 10 additions & 0 deletions packages/nuxt/src/app/composables/ssr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,13 @@ export function useRequestHeaders (include?) {
export function useRequestEvent (nuxtApp: NuxtApp = useNuxtApp()): CompatibilityEvent {
return nuxtApp.ssrContext?.event as CompatibilityEvent
}

export function setResponseStatus (code: number, message?: string) {
const event = process.server && useRequestEvent()
if (event) {
event.res.statusCode = code
if (message) {
event.res.statusMessage = message
}
}
}
1 change: 1 addition & 0 deletions packages/nuxt/src/auto-imports/presets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ export const appPreset = defineUnimportPreset({
'useCookie',
'useRequestHeaders',
'useRequestEvent',
'setResponseStatus',
'useRouter',
'useRoute',
'useActiveRoute',
Expand Down