web-dev-qa-db-fra.com

[ERR_HTTP_HEADERS_SENT]: impossible de définir les en-têtes après leur envoi au client

Je travaille avec PostgreSQL et NodeJS avec son "PG Module". CRUD fonctionne mais parfois ne met pas automatiquement à jour les vues lorsque j'enregistre ou supprime un élément. c'est mon code et je pense que l'erreur est là mais je ne la trouve pas, j'ai tout essayé: '(

Message d'erreur:

enter image description here

const controller = {};
const { Pool } = require('pg');

var connectionString = 'postgres://me:system@localhost/recipebookdb';
const pool = new Pool({
    connectionString: connectionString,
})

controller.list = (request, response) => {
    pool.query('SELECT * FROM recipes', (err, result) => {
        if (err) {
            return next(err);
        }
           return response.render('recipes', { data: result.rows });
    });
};

controller.save = (req, res) => {
    pool.query('INSERT INTO recipes(name, ingredients, directions) VALUES ($1, $2, $3)',
        [req.body.name, req.body.ingredients, req.body.directions]);
    return res.redirect('/');
};

controller.delete = (req, res) => {
    pool.query('DELETE FROM RECIPES WHERE ID = $1', [req.params.id]);
    return res.redirect('/');
}

module.exports = controller;

PD: CRUD fonctionne mais apparaît parfois cette erreur.

4
Carlos Torres

Vous devez intégrer votre réponse dans le rappel de la requête. Étant donné que l'appel est asynchrone, l'envoi de la réponse plus tôt mettra fin à la pile d'appels sans jamais attendre la webapi (le comportement peut varier).

controller.delete = (req, res) => {
    pool.query('DELETE FROM RECIPES WHERE ID = $1', [req.params.id],(err, result) 
     => {
         // error handling can be done accordingly
        return res.redirect('/');
    })

}
0
Vijay Kumar Attri