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:
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.
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('/');
})
}