多重';res';导致问题的express中的语句?

多重';res';导致问题的express中的语句?,express,redirect,response,Express,Redirect,Response,我正在编写一个Node.js应用程序,我经常遇到“res”语句的问题……似乎使用多个语句会抛出错误。例如,在以下示例中: //POST /login gets urlencoded bodies app.post('/login', urlencodedParser, csrfProtection, function (req, res) { if (!req.body) return res.sendStatus(400) console.log("Posted data

我正在编写一个Node.js应用程序,我经常遇到“res”语句的问题……似乎使用多个语句会抛出错误。例如,在以下示例中:

//POST /login gets urlencoded bodies
app.post('/login', urlencodedParser, csrfProtection, function (req, res) {     
 if (!req.body) return res.sendStatus(400)

    console.log("Posted data:" + JSON.stringify(req.body));
    console.log("req.body.pword:" + req.body.pword);
    console.log("req.body.usr:" + req.body.usr);

 if (loggedIn == true) {
    res.send("Already logged in.");
 }
 else {

    if (req.body.pword == password) {
        loggedIn = true;
    //res.send('welcome, ' + req.body.usr)
        console.log("Logged in");

        res.redirect('/admin');

      }
     }

    })

如前所述,“res.redirect”将按预期正常工作。但是,如果我“取消注释”读取“res.send('welcome,+req.body.usr)”的行,将抛出一个错误,并且重定向不会执行。在尝试使用多个“res”语句时,此类错误似乎经常发生。有人能告诉我发生了什么,我显然不明白…以及可能的解决办法吗?我先谢谢你。注意。

res.redirect
res.send
一起使用没有意义-它们都会终止响应,并且通过重定向,用户将永远看不到您发送的文本。使用其中一个,而不是两个。

谢谢您的回复。如果“res”终止响应,我如何防止终止。。。?有某种“重置”吗。。。?或者,我如何在不使用“res”的情况下发送一条简单的信息性消息(例如我的示例中的“welcome+req.body.usr”)……是否还有另一个命令更好地用于此类需求?再次感谢。您可以将欢迎消息作为
/admin
页面的一部分包括在内-当用户登录时,可能会重定向到
/admin?welcome=true
,如果
欢迎
true
,则显示该消息。对于其他问题,我建议您阅读有关HTTP协议工作原理的教程,并学习如何使用
curl
或类似工具读取原始请求和响应输出。再次感谢您……我从您的响应中得知,没有其他方法可以做到这一点……哈哈哈。我猜你说的是,任何HTTP请求只有一个请求和一个响应,除了使用你提到的“curl”之类的其他工具或其他工具之外,没有其他解决方法……对吗?谢谢你花时间向我解释…我很感激。至少这解释了为什么我在使用多个“res”语句时经常抛出错误。当做