Evitar errores de Net.createConnection en el nodo
Actualmente estoy creando una aplicación con React y Node.js
En esta aplicación, necesito consultar una base de datos en mi propio servidor con la siguiente función, ubicada en un archivo separado llamado "database.js"
const fetchQuery = util.promisify(con.query).bind(con)
// Get all the tracks for a given date from the
const fetchTracks = async (date) => {
const rows = await fetchQuery("SELECT * FROM tracks WHERE playlistDate = '"+date+"'");
}
Esto funciona perfectamente cuando ejecuto el archivo con Node desde la línea de comando. Sin embargo, cuando intento importarlo a mi aplicación de reacción con
import { fetchTracks, addTracks } from '../scripts/database'
Empiezo a recibir errores en el archivo de la base de datos, específicamente Unhandled Rejection (TypeError): Net.createConnection is not a functionen mi llamada fetchQuery.
Por lo que he leído, esto sucede al intentar llamar a la función desde el navegador, ya que supondría un riesgo para la seguridad. Sin embargo, según tengo entendido, todas las operaciones de nodo se realizan en el lado del servidor, ¿verdad? ¿Por qué obtendría este indicador cuando supuestamente se consulta la base de datos antes de que se sirva la página? ¿Qué necesito para modificar esto?
Respuestas
React se ejecuta en el navegador, por lo que tan pronto como lo incluya database.jsen su aplicación React, se ejecutará en el navegador con el resto de React, por lo que, por supuesto, obtendrá el error. Hacer que esto funcione ofrece dos opciones:
exponer un punto final de API de Node para que React lo llame, y ese punto final de API llama a database.js, o
investigue la representación del lado del servidor para React, donde algunas de sus aplicaciones React, en particular las partes más estáticas como su menú principal, se crean en el lado del nodo y solo el HTML final se envía al navegador. (Sin embargo, este es un tema amplio en sí mismo).
Según su ejemplo, que toma un parámetro de fecha para SQL, supongo que el número 2 no es una opción.