Express和Node js - 错误时无法重定向

时间:2014-12-14 04:11:41

标签: node.js express node-mysql

所以问题是我试图捕获MySQL错误,所以当它发生时我只想将用户重定向到我的应用程序的另一个页面并显示通知或其他内容,但不是无论我在重定向方法中放入什么网址,它都会将我发送到索引页面" /"。这是我的代码,因为你可以看到我甚至把谷歌URL,但它仍然把我送到家里" /"。

var query = "DELETE FROM buildings WHERE id = ?";
connection.query(query, id, function(err) {
    if (err) {
        console.log("Foreign key restriction");
        return res.redirect("http://google.com");
    }
    if (fs.existsSync('./public/' + img)) {
        fs.unlinkSync('./public/' + img);
    }
    res.redirect("/");
});

也可以说"外键限制"在控制台上打印,但我没有重定向。 有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:1)

err永远不会被设置,因此您总是回退并使用最后一次重定向到/

您的查询调用中缺少[]。即,它应该是

connection.query(query, [id], function(err) {

答案 1 :(得分:0)

确保您“返回”正确的功能。正如尝试首先返回您的查询一样:

return connection.query(query, id, function(err) {