webapp/api/ssr.mjs

33 lines
773 B
JavaScript
Raw Normal View History

2023-11-04 13:09:15 +00:00
import { renderPage } from 'vike/server'
2023-02-17 09:21:02 +00:00
2023-11-13 15:29:46 +00:00
export const config = {
runtime: 'edge'
}
2023-02-17 09:21:02 +00:00
export default async function handler(req, res) {
const { url, cookies } = req
const pageContext = await renderPage({ urlOriginal: url, cookies })
2023-11-04 13:57:42 +00:00
const { httpResponse, errorWhileRendering, is404 } = pageContext
2023-11-04 13:57:42 +00:00
if (errorWhileRendering && !is404) {
console.error(errorWhileRendering)
res.statusCode = 500
res.end()
return
}
2023-02-17 09:21:02 +00:00
if (!httpResponse) {
res.statusCode = 200
res.end()
return
}
const { body, statusCode, contentType } = httpResponse
res.statusCode = statusCode
res.setHeader('Content-Type', contentType)
2023-11-13 14:54:22 +00:00
res.setHeader('Cache-Control', 's-maxage=1, stale-while-revalidate')
2023-11-13 15:10:39 +00:00
res.setHeader('Test', 'test=1')
2023-02-17 09:21:02 +00:00
res.end(body)
}