「PGモジュール」を使用して、PostgreSQLとNodeJSを操作しています。 CRUDは機能しますが、アイテムを保存または削除したときにビューが自動的に更新されない場合があります。これは私のコードであり、エラーはここにあると思いますが、私はそれを見つけることができません、私はすべてを試しました: '(
エラーメッセージ:
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は機能しますが、時々そのエラーが表示されます。
クエリへのコールバックに応答を埋め込む必要があります。呼び出しは非同期であるため、先に応答を送信すると、webapiを待たずに呼び出しスタックが終了します(動作は異なる場合があります)。
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('/');
})
}