De la manera que quieras. Como estás preguntando, asumiré que algunos ejemplos están en orden. La forma más sencilla sería tener un punto final que sea HTTP o HTTPS que devuelva JSON. Algunos JavaScript crean una XMLHttpRequest (también conocida como AJAX) o una búsqueda (si solo le interesa trabajar con navegadores que lo admitan o si utiliza un respaldo de tiempo de ejecución o un polyfill para navegadores más antiguos). Cuando se devuelve la solicitud de datos, el JavaScript puede tomar la respuesta JSON y pasarla a una vista / componente React como un `prop` y la vista puede representarlo.
Entonces, con Node + Express + PostgreSQL, esperaría que estuvieras haciendo muchos puntos finales JSON. Quizás usando REST o quizás usando GraphQL o Falcor. El enfoque con los puntos finales REST requiere que cada vez que desee cambiar los datos que está obteniendo, es probable que tenga que ir al back-end y modificar el código del lado del servidor. Con GraphQL y Falcor, el cliente tiene más control sobre la solicitud. El cambio puede requerir una modificación del lado del servidor, pero a menudo no lo haría. Esa es una razón para considerarlos. Otra es que le da al desarrollador en la interfaz más flexibilidad. Si algún tipo de datos en particular tarda un tiempo en recuperarse, el desarrollador puede optar por hacer dos solicitudes de datos: una para los datos rápidos y otra para los lentos. De esa manera, los datos rápidos se pueden representar y el sitio se sentirá más receptivo.
Si prefiere seguir con REST, podría considerar usar restify o proyectos similares que ofrezcan un poco más de marco en torno a esa necesidad específica.
- Si quisiera crear un sitio como Quora, ¿cómo gestionaría mis desarrolladores front-end y back-end por separado y de manera eficiente?
- ¿Debo contratar desarrolladores independientes de front-end y back-end?
- Usando C # como primer lenguaje y esperando hacer el desarrollo de back end. ¿Es una mala idea?
- ¿Existe un gran desarrollador front-end y back-end?
- Cómo configurar un servidor front-end y un servidor back-end que se ejecutan en la misma máquina
Pero el panorama general es que JavaScript solicita datos del backend y los procesa. Eso se puede hacer de muchas maneras. Un enfoque que es popular en este momento, por una buena razón, creo, es pensar en los datos como un árbol de estado en el lado del cliente y realmente hacerlo con Redux. Pero debe comenzar en alguna parte; si algo le parece abrumador, comience con lo que resuelva su necesidad inmediata. Siempre puede refactorizar más tarde para acomodar los cambios en la forma en que decide diseñar el sistema. Mi consejo sería centrarse en el progreso sobre la perfección hasta que tenga más experiencia.
Nota al pie: También hay otras opciones además del JavaScript que realiza solicitudes de datos al backend. Puede serializar el JSON en el HTML emitido por el servidor. De esa manera, no se necesita una solicitud adicional y puede tomar ese JSON y pasarlo a una función que inicie los componentes React. De hecho, utilicé este enfoque para una necesidad muy específica. Pero la forma más típica de obtener datos es hacerlo a través de JavaScript, por lo que me concentré en eso arriba. Pero agrego esta nota al pie para señalar que no hay una sola manera de hacer las cosas.