Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

125
Views
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 answers
Answer question

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 Report

0

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

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!