I got a page.server.ts like this
export const load: PageServerLoad = async (event: any) => {
const token = event.locals.token
try {
const res = await getData(
api.getProductByIdentifier + '/' + event.params.id,
'',
false,
)
if (res.data) {
return res
} else {
redirect(302, '/contact')
}
} catch (error) {
return { data: [] }
}
}
and my +page.ts
<script lang="ts">
export let data: any
let product = replaceNewline(data.detail)
</script>
<div class="bg-white">
{product.detail}
</div>
The problem is When my data is empty, the server doesn't redirect, and the +page.ts keep rendering,of course with error 500 internal error, because the product.detail never existed.
Turn out, I just need to put
redirect(302, '/contact')outside the try and catch. It id documented on sveltekit site.It works great now