es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La solicitud GET en Node.js funciona en localhost pero no en mi servidor.

Mi solicitud GET funciona en localhost pero no en mi servidor.
Lo probé con Postman.
Mi Hostinger es OVH.
Mi base de datos también está alojada en OVH, pero no está directamente conectada al servidor.
Aquí está el código de la aplicación:

const express = require('express')
const bodyParser = require('body-parser')
const mysql = require('mysql')
const { response } = require('express')

const app = express();

const PORT = process.env.PORT || 35707;

// Mi base de datos externa de MySQL
const db_conn = mysql.createPool({
    connectionLimit : 10,
    host: 'Mihost',
    port: 35707,
    user: 'miUsuario',
    password: 'MiContraseña',
    database: 'miDB'
})

// Esto funciona
app.get('/', (req, res) => {
    res.json({ test: 'test'});
});

// Esto también funciona
app.get('/all.json', (req, res) => {
    db_conn.getConnection( (err, conn) => {
        if(err) throw err
        console.log(`connected as id ${conn.threadId}`)
        conn.query(
        "SELECT ID, [...]", 
        (err, rows) => {
            conn.release()
            if(!err){
                res.send({"table": rows});

            }else {
                console.log(err);
            }
        })
    })
})

// Esto funciona en localhost pero no en el servidor
// Lo probé con Postman
app.get('/id/:number/', (req, res) => {
    db_conn.getConnection( (err, conn) => {
        if(err) throw err
        console.log(`connected as id ${conn.threadId}`)
        conn.query("SELECT * FROM _posts WHERE ID=?", [req.params.number], (err, rows) => {
            conn.release()
            if(!err){
                res.send({"table": rows});
            }else {
                console.log(err);
            }
        })
    })
})

¿Sabes cuál podría ser la razón de eso?
Gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Hay varias razones por las que una solicitud GET puede funcionar en el localhost pero no en el servidor. Aquí hay algunas posibles razones:

    1. Firewall: Verifica la configuración del firewall en tu servidor o proveedor de hosting para asegurarte de que no esté bloqueando conexiones entrantes.

    2. Puerto: Verifica que el número de puerto en tu servidor coincida con el número de puerto utilizado en el código.

    3. CORS: El Compartir Recursos de Origen Cruzado (CORS) puede causar problemas si el servidor no está configurado para aceptar solicitudes desde el dominio donde está alojado el cliente. Verifica si el servidor está configurado para permitir solicitudes desde tu dominio.

    4. Base de datos: Verifica si la configuración de la base de datos es correcta y si la base de datos es accesible desde el servidor.

    5. Variables de entorno: Verifica si las variables de entorno utilizadas en el código están configuradas correctamente en el servidor.

    6. Configuración del servidor: Verifica el archivo de configuración del servidor para asegurarte de que esté correctamente configurado para aplicaciones node.js.

    7. Error de código: Verifica el código en busca de errores de sintaxis o errores lógicos que puedan evitar que la solicitud GET funcione correctamente.

Comments are closed.