множественные операторы "res" в экспрессе вызывают проблемы? - PullRequest
0 голосов
/ 27 августа 2018

Я пишу приложение 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.Кто-нибудь может просветить меня о том, что происходит, что я, очевидно, не понимаю ... а также о возможном обходном пути?Я благодарю вас заранее.Привет.

1 Ответ

0 голосов
/ 27 августа 2018

res.redirect не имеет смысла использовать с res.send - они оба завершают ответ, и при перенаправлении пользователь никогда не увидит отправляемый вами текст.Используйте одно или другое, а не оба.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...