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

278
Views
Error de depuración de Express/node.js: no se pueden establecer encabezados después de enviarlos

Estoy tratando de crear una aplicación CRUD básica y tengo problemas durante la depuración. Para compilar mi aplicación CRUD, actualmente estoy usando node.js, express y mongodb . Cualquier ayuda que todos ustedes puedan proporcionar sería realmente muy útil.

context: como referencia estoy usando esto:

 https://zellwk.com/blog/crud-express-mongodb/, currently on "Showing quotes to users"

mi problema: recibo el siguiente error con mi código y no estoy seguro de si esto se debe a la ubicación de mi código.

 Error: Can't set headers after they are sent. at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:357:11) at ServerResponse.header (C:\Users\hcqph\gitprojects\crudbeta\node_modules\express\lib\response.js:725:10) at ServerResponse.contentType (C:\Users\hcqph\gitprojects\crudbeta\node_modules\express\lib\response.js:558:15) at ServerResponse.send (C:\Users\hcqph\gitprojects\crudbeta\node_modules\express\lib\response.js:145:14) at done (C:\Users\hcqph\gitprojects\crudbeta\node_modules\express\lib\response.js:962:10) at tryHandleCache (C:\Users\hcqph\gitprojects\crudbeta\node_modules\ejs\lib\ejs.js:208:10) at View.exports.renderFile [as engine] (C:\Users\hcqph\gitprojects\crudbeta\node_modules\ejs\lib\ejs.js:412:10) at View.render (C:\Users\hcqph\gitprojects\crudbeta\node_modules\express\lib\view.js:128:8) at tryRender (C:\Users\hcqph\gitprojects\crudbeta\node_modules\express\lib\application.js:640:10) at EventEmitter.render (C:\Users\hcqph\gitprojects\crudbeta\node_modules\express\lib\application.js:592:3)

este es mi código:

 app.use(bodyParser.urlencoded({extended: true})) //set 'ejs' template engine, and default extension is ejs app.set('view engine', 'ejs') /* -------- for team documentation -------- => = replacement for function app.get hand a GET request (read operation) ------------------------------------------------ */ app.get('/', (req, res) => { //serves index.html back to browser res.sendFile(__dirname + '/index.html') //gets list of trips from mlab.com var cursor = db.collection('trips').find() //retrieves list of trips retrieved from mlab db.collection('trips').find().toArray(function(err, results) { if(err) return console.log(err) //renders index.ejs res.render('index.ejs', {trips:results}) }) }) /* app.post handles a create request */ app.post('/trips', (req, res) => { db.collection('trips').save(req.body, (err, result) =>{ if (err) return console.log(err) console.log('saved to database') res.redirect('/') //causes browser to reload }) })

¿Es por donde estoy jugando mi app.set? ¿Cómo puedo arreglar esto?

Además, ¿estoy haciendo referencia a mi res.render para index.ejs correctamente si está anidado dentro de las vistas de carpeta?

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

No puede enviar dos respuestas para una solicitud

elimine una de las líneas de su código:

O

  • res.sendFile(__dirname + '/index.html')

O

  • res.render('index.ejs', {viajes:resultados})

What's happening in your code:

Cuando / get request se activa, el nodo lo redirige al archivo index.html, pero el siguiente se ejecuta simultáneamente y se procesa en el archivo index.ejs, lo que genera un error porque el nodo ya envió una respuesta, ahora no puede enviar encabezados en respuesta a solicitudes anteriores nuevamente.

Así que tienes que eliminar una de las líneas mencionadas anteriormente.

about 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!