Postgresql 删除导致重定向循环?

Postgresql 删除导致重定向循环?,postgresql,express,Postgresql,Express,我有一个带有postgres后端的express应用程序,用户可以在其中添加/删除菜谱,每次添加/删除菜谱时,他们都会得到一份最新的菜谱列表。添加一个菜谱是可以的,但当我删除一个菜谱时,它似乎陷入了重定向循环。在app.js router.get('/delete/:d', delRec.deleteRecipe); 它调用以下代码 exports.deleteRecipe = function(req, res){ pg.connect(conString, function(err,

我有一个带有postgres后端的express应用程序,用户可以在其中添加/删除菜谱,每次添加/删除菜谱时,他们都会得到一份最新的菜谱列表。添加一个菜谱是可以的,但当我删除一个菜谱时,它似乎陷入了重定向循环。在app.js

router.get('/delete/:d', delRec.deleteRecipe);
它调用以下代码

exports.deleteRecipe = function(req, res){
  pg.connect(conString, function(err, client) {
    client.query('DELETE FROM recipes WHERE recipe_name = ', [req.params.d], function(err, result) {
      if(err) {
        return console.error('error running query', err);
      } else if (result) {
        pg.end();
        console.log('deleting');
      }
    });
  });
  res.redirect('recipes');
};
如果我尝试删除一个配方,
console.log('deleting')

deleting
deleting
deleting
deleting
deleting
deleting
deleting
deleting
deleting
deleting
deleting
deleting
deleting
deleting
deleting
deleting
deleting
deleting
deleting
deleting
deleting
下面是
配方路线
(很抱歉,它太复杂了)


导致您的问题的行是
res.redirect('recipes')

首先,正如@Jordonias指出的,您应该将这一行放在db查询的回调中

第二,我认为该行将您从
YOUR_DOMAIN.COM/delete/:d
重定向到
YOUR_DOMAIN.COM/delete/recipes
,而不是
YOUR_DOMAIN.COM/recipes
,这会生成一个无限重定向循环。绝对路径与相对路径是一个非常常见的陷阱


因此,您应该将代码更改为
res.redirect('/recipes')

给我们看看你的食谱现在就开始吧,为意大利面条道歉我不确定这是否与问题有关。但是对于您的错误,您应该发送响应并记录您的错误。目前,您仅将错误记录到控制台。这可能是问题的根源,因为请求可能没有得到响应。
router.get('/recipes', function(req, res) {
  pg.connect(conString, function(err, client) {
    if(err) {
      return console.error('could not connect to postgres', err);
    }
    client.query('SELECT * FROM recipes', function(err, result) {
      if(err) {
        return console.error('error running query', err);
      }
      recipes = result.rows;

      for(var d in recipes) {
        if (recipes.hasOwnProperty(d)) {
          recipeList[d] = recipes[d].recipe_name;
        }
      }
      res.render('recipes', {recipes: recipes, recipeList: recipeList});
    });
  });
});