Estoy tratando de obtener algunos datos de usuario de stripe en la función getServerSideProps en Next.JS para poder pasarlos a otros componentes, pero tengo dificultades para obtener los datos de la función getServerSideProps .
A continuación se muestra mi función getServerSideProps :
export const getServerSideProps = withPageAuthRequired({ async getServerSideProps(context) { const user = getSession(context.req, context.res).user const resources = await table.select({}).all() const customer = await fetch(`/api/customers`).then(res => res.json()).then(data => { data.data.find(user_data => user_data.metadata['auth0_user_id'] === user.sub);}) const subscriber_status = await customer.metadata['subscription_status'] === 'true'; return { props: { tech_resources: minifyRecords(resources), subscriber_stats: subscriber_status, // I want to return the subscriber status so that I can pass it to another component later on } } } }); A continuación se muestra mi solicitud de fetch original que obtiene los datos que busco si la uso como una función independiente o con un gancho useEffect.
fetch(`/api/customers`).then(res => res.json()).then(data => { const customer = data.data.find(user_data => user_data.metadata['auth0_user_id'] === user.sub); if (customer.metadata['subscription_status'] === 'true') { // Do Something;}} Sin embargo, cuando probé esto dentro de getServerSideProps , parece que no funciona. ¿Puede alguien ayudarme con esto?
El await fetch luego usando la promesa me parece extraño. Cuando usa await, entonces su resultado será la respuesta.
Así que tal vez intente
const response = await fetch(`/api/customers`); const data = await response.json();