• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

318
Views
Error al obtener del servidor usando Node.js y Heroku

Estoy tratando de implementar mi aplicación React en Heroku, sin embargo, me encuentro con algunos errores de graphql. Cuando implemento manualmente la aplicación, tanto el servidor como el cliente se inician correctamente, sin embargo, al realizar cualquier acción que requiera una búsqueda de la base de datos, aparece un error de búsqueda fallida y un error de "Error al cargar el recurso: net::ERR_CONNECTION_REFUSED". Creo que esto se debe a que el servidor está en la ubicación correcta (en cuanto a IP), pero esta aplicación se creó para ejecutarse localmente, por lo que se espera que el cliente esté en la red localhost, no en la URL de heroku que tiene ahora. Cambié las variables ENV varias veces para ver qué combinación de direcciones funcionaría para el servidor y el cliente, sin embargo, nada cambió. Publicaré mi código del lado del servidor y las variables ENV a continuación:

 const { ApolloServer } = require('apollo-server-express'); const cors = require('cors'); const express = require('express'); const mongoose = require('mongoose'); const resolvers = require('./resolvers/root-resolver'); const { typeDefs } = require('./typedefs/root-def'); const serverOptions = require('./server-config'); require('dotenv').config(); const { MONGO_URI, BACKEND_PORT, CLIENT_LOCAL_ORIGIN, SERVER_LOCAL_DOMAIN } = process.env; // create express server handling our middleware const app = express(); // since we presume cors is enabled, this next step is not optional, so cors // is enable here instead of in options app.use(cors({ origin: CLIENT_LOCAL_ORIGIN, credentials: true })); const corsPolicy = async(req, res, next) => { /* TODO for 316 students: res.set(), Access-Control-Allow-Origin and Access-Control-Allow-Credentials headers, have them set these, inspect error messages, understand why they're needed */ res.set("Access-Control-Allow-Origin", req.headers.origin.toString()); res.set("Access-Control-Allow-Credentials", true); next(); } app.options('*', cors()); app.use(corsPolicy); // middleware application is configured to happen in server-config.js serverOptions(app); const server = new ApolloServer({ typeDefs: typeDefs, resolvers: resolvers, context: ({req, res}) => ({ req, res }) }); // since the express server has cors configured, cors on the apollo server // can be false; passing the same options as defined on the express instance // works as well server.applyMiddleware({ app , cors: false}); mongoose.connect(MONGO_URI, {useNewUrlParser: true , useUnifiedTopology: true}) .then(() => { app.listen({ port: BACKEND_PORT }, CLIENT_LOCAL_ORIGIN, () => { console.log(`Server ready at ${SERVER_LOCAL_DOMAIN}:${BACKEND_PORT}`); }) }) .catch(error => { console.log(error) });

[Variables ENV][1] [1]: https://i.stack.imgur.com/5nqmp.png

almost 3 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error