Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

126
Vistas
Función de publicación ejecutándose para siempre en JS

Tengo una configuración de función para verificar básicamente si alguien ha iniciado sesión y si está agregando 1 a una variable. El problema es que cuando se ejecuta en una aplicación como un cartero, dura para siempre, y cuando se ejecuta en el navegador, nunca va a .then.

html

 $('.fa-regular.fa-heart').click(function(){ $regular.toggleClass('hide'); $solid.toggleClass('hide'); $added.toggleClass('hide'); $noadded.toggleClass('hide'); console.log("running"); fetch("/articles/popplus/<%= article.id%>", { method: 'POST', mode: 'cors', cache: 'default', body: JSON.stringify(null) }).then((data) => { console.log("data") console.log(data) }); })

Nodo.js

 router.post('/popplus/:id', async (req, res, next) => { var id = req.params.id; const user = await Users.findOne({ username: req.session.username }) console.log(user) if (user){ console.log(user.likedposts) if (!user.likedposts.includes(id)){ console.log("here") req.article = await Article.findById(id) req.article.pop += 1 let article = req.article user.likedposts.push(id) await user.save() await article.save() return "done" } else{ console.log("already liked this post") return "already liked this post"; } } else{ console.log("sighn in"); return {test: "must sighn in to like posts"}; } })
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Para completar un controlador de solicitud Express, DEBE enviar algún tipo de respuesta http. La forma habitual de hacerlo es con res.send(...) o res.json(...) , pero si no tiene datos para enviar, también puede simplemente hacer res.sendStatus(xxx) o incluso simplemente res.end() .

Express no presta atención a lo que return desde su controlador de solicitudes, por lo que devolver un valor desde el controlador de solicitudes no hace nada en absoluto: se ignora por completo. En su lugar, debe llamar explícitamente a uno de los métodos anteriores para enviar una respuesta http.

Si no envía una respuesta http llamando a uno de estos métodos de tipo Express en el objeto de respuesta, entonces el cliente simplemente se sienta allí esperando una respuesta para volver a su solicitud y espera un tiempo hasta que finalmente se agota el tiempo de espera de la solicitud. .

over 4 years ago · Santiago Trujillo Denunciar

0

Use res.send() en lugar de return porque return no se usa para los controladores de eventos.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda