createError
Crie um objeto de erro com metadados adicionais.
Você pode usar esta função para criar um objeto de erro com metadados adicionais. Ela pode ser usada tanto nas partes Vue quanto Nitro do seu aplicativo, e é destinada a ser lançada.
Parâmetros
err
:string | { cause, data, message, name, stack, statusCode, statusMessage, fatal }
Você pode passar uma string ou um objeto para a função createError
. Se você passar uma string, ela será usada como a message
do erro, e o statusCode
será por padrão 500
. Se você passar um objeto, pode definir várias propriedades do erro, como statusCode
, message
e outras propriedades de erro.
No App Vue
Se você lançar um erro criado com createError
:
- no lado do servidor, ele acionará uma página de erro em tela cheia que você pode limpar com
clearError
. - no lado do cliente, ele lançará um erro não fatal para você lidar. Se você precisar acionar uma página de erro em tela cheia, pode fazer isso definindo
fatal: true
.
Exemplo
const route = useRoute()
const { data } = await useFetch(`/api/movies/${route.params.slug}`)
if (!data.value) {
throw createError({ statusCode: 404, statusMessage: 'Page Not Found' })
}
Em Rotas de API
Use createError
para acionar o tratamento de erros em rotas de API do servidor.
Exemplo
export default eventHandler(() => {
throw createError({
statusCode: 404,
statusMessage: 'Page Not Found'
})
})
Nas rotas de API, é recomendado usar createError
passando um objeto com um statusMessage
curto porque ele pode ser acessado no lado do cliente. Caso contrário, uma message
passada para createError
em uma rota de API não será propagada para o cliente. Alternativamente, você pode usar a propriedade data
para passar dados de volta para o cliente. Em qualquer caso, sempre considere evitar colocar entradas dinâmicas do usuário na mensagem para evitar possíveis problemas de segurança.
※Esta página é uma tradução não oficial da documentação oficial do Nuxt.js.
A página correspondente na documentação oficial está aqui:
https://nuxt.com/docs/3.x/api/utils/create-error