Next.js: buscar datos en getInitialProps(): en el lado del servidor vs el lado del cliente

Estoy usando Next.js y tengo un servidor personalizado utilizando Express. Tengo una página que requiere de algunos datos de la base de datos.

getInitialProps(), cuando se ejecuta en el servidor, podría simplemente tomar los datos de la base de datos y devolver, sin ningún tipo de problemas.
Sin embargo, getInitialProps() también se puede ejecutar en el lado del cliente (cuando el usuario inicialmente solicita una página diferente, a continuación, se desplaza a este). En ese caso, ya que estoy en el lado del cliente, que obviamente no puede obtener los datos de la base de datos – tengo que usar AJAX para hablar con el servidor y preguntar a recuperar para mí.

Por supuesto, esto también significa que he definir una nueva ruta Express en el servidor para procesar esta solicitud, que contendrá exactamente el mismo código del lado del servidor, la parte de getInitialProps(), que es muy indeseable.

¿Cuál es la mejor manera de manejar esto?

InformationsquelleAutor ShdNx | 2018-03-21

4 Kommentare

  1. 5

    Ya que no hay una buena solución parecía haber existido, he creado y publicado una biblioteca para proporcionar una solución sencilla y elegante a este problema: siguiente-express.

  2. 4

    En su getInitialProps usted debe hacer una solicitud http a una nueva ruta expresa que tiene la lógica de la obtención de la base de datos. Que la lógica nunca debe vivir en la capa de interfaz de usuario.

    Esta ruta debe ser llamados independientemente de si usted está en el cliente o en el servidor que usted no necesita hacer cualquier código de ramificación.

  3. 4

    Hacer una API distinta de su next.js app. Pensar en la próxima aplicación de la interfaz de cliente que pasa a hacer las páginas en el servidor

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea