Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

95
Vistas
Cómo combinar varias funciones getServerSideProps

Tengo dos páginas; index.js y other.js, en index.js tengo un método getServerSideProps ;

 export async function getServerSideProps(context) { //code here }

Quiero usar esta misma función en la página other.js. Debido a que el código en index.js getServerSideProps es bastante largo, tuve que importar getServerSideProps en index.js a other.js, haciendo algo como;

 import { getServerSideProps } from "./index"; ... export { getServerSideProps };

Funciona bien, pero el problema es que quiero hacer otra solicitud en getServerSideProps que solo se ejecuta en la página other.js. Una forma de hacerlo es copiar el código getServerSideProps que escribí para index.js y pegarlo en other.js y modificar el código. El problema es que, como mencioné anteriormente, el código es bastante grande en getServerSideProps y no quiero copiarlo y pegarlo en todas las páginas que lo necesito.

Mi pregunta es, ¿cómo agrego otro getServerSideProps al que ya exporté de otra página? Básicamente, quiero fusionar los getServerSideProps exportados en index.js con los getServerSideProps que tengo localmente en other.js

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si desea volver a utilizar la misma función getServerSideProps , pero ejecutar condicionalmente un código específico en función de la página desde la que se llama, puede intentar utilizar el objeto context.req :

index.js

 export default function Home({ data }) { return <>{data}</>; } export async function getServerSideProps(context) { let foo; // Parse `message.url` into parts. An alternative to using the `URL` class // would be to use `context.resolvedUrl`, but that will take more effort to // isolate pathnames when query parameters are involved. const reqUrl = new URL( context.req.url, `https://${context.req.headers.host}` ); const thisPage = reqUrl.pathname; const queryParams = reqUrl.searchParams; switch (thisPage) { case "/": // code for index.js foo = "Hello, index.js!"; break; case "/other": // code for other.js foo = "Hello, other.js!"; break; default: foo = "Hello, world!"; } // common code console.log("`thisPage`:", thisPage); console.log("`context.resolvedUrl`:", context.resolvedUrl); console.log("`queryParams`:", queryParams); return { props: { data: foo }, }; }

other.js

 import { getServerSideProps } from "./index"; export default function Other({ data }) { return <>{data}</>; } export { getServerSideProps };
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda