Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

213
Visualizações
Express handler llamado de nuevo sin solicitud del cliente

En el código a continuación, el cliente POST envía algunos datos a /somewhere y luego se ejecuta la devolución de llamada del controlador de ruta.

Dentro de la devolución de llamada, estoy esperando que se resuelva una Promise antes de enviar algún resultado al cliente.

The Promise tardará bastante tiempo en resolverse. Esto se espera.

No sé cuánto tiempo tomará porque alrededor de 2-3 minutos después de la ejecución de Promise, se vuelve a llamar al controlador app.post('/somewhere') , aunque el cliente no hace tal solicitud (marcado). No hay actividad en el cliente durante todo este tiempo, no hay actualización de página, redirección... nada.

Además, no se generan errores desde forSomethingReallySlow() ya que no se registra nada relevante en la consola de Node. Y tengo registros extensos dentro de forSomethingReallySlow() donde todo funciona bien hasta que se vuelve a llamar al controlador y forSomethingReallySlow() reinicia.

 app.use(cors({ origin: '*', credentials: true, optionSuccessStatus: 200 })) app.use(function(req, res, next) { res.header('Access-Control-Allow-Origin', 'http://localhost:4200') res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization') res.header('Access-Control-Allow-Methods', 'POST, GET') next() }) app.use(cookieParser()) app.use(bodyParser.json({limit: "50mb"})); app.use(bodyParser.urlencoded({limit: "50mb", extended: true, parameterLimit:50000})) app.use(session({ secret: 'googoogaga', resave: false, saveUninitialized: false })) app.use(passport.initialize()) app.use(passport.session()) passport.use(new FacebookStrategy({ clientID : FACEBOOK_APP_ID, clientSecret : FACEBOOK_APP_SECRET, callbackURL : "http://localhost:4200/facebook/callback", profileFields : ['id'] }, async(accessToken, refreshToken, profile, done) => { let facebookId = profile.id let userInDb = await DB.getUser() if (userInDb && userInDb.facebookId === facebookId) { await DB.updateUser({ accessToken }) done(null, userInDb) } else { let newUser = await DB.updateUser({ facebookId, accessToken }) done(null, newUser) } })) passport.serializeUser(function(user, done) { done(null, user) }) passport.deserializeUser(function(user, done) { done(null, user) }) app.post('/somewhere', ensureLoggedIn('/auth/facebook'), jsonParser, async function(req, res){ console.log('new POST request at: ', new Date()) let result = await forSomethingReallySlow(req.body) res.status(200).send({ result }) })

¿Hay alguna característica Express interna que vuelva a llamar a un controlador si tarda demasiado en responder? Y puedo desactivarlo? ¿O hay algo más mal? De forma anticipada, muchas gracias por su ayuda.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

¡Oooooo, 2 minutos suena muy cerca de la configuración de tiempo de espera predeterminada en Express, que es de 120 segundos! ¿Puedes probar esto res.connection.setTimeout(0); justo cuando comienza la función?

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda