Как сделать заново ту же страницу с дополнительными данными - PullRequest
0 голосов
/ 10 июня 2018

У меня есть две функции маршрутизации, которые должны отображать одну и ту же страницу, но с разными данными, основанными на URL-адресе. Но как только я отобразил страницу, я не могу повторно отобразить страницу, она выдает ошибку

Error: Can't set headers after they are sent.

У меня есть два таких маршрута:

app.post('/abc',function(req,res){
...
res.render('template',{....})
...
});

app.get('/abc/xyz/:params',function(req,res){
...
res.render('template',{...})
...
});

У меня есть кнопка отправки на странице /abc, которая указывает на /abc/xyz/params, но выдает ошибку заголовка.

Затем я попытался отправить некоторые данные с помощью res.json, которые позже я мог бы обработать с помощью AJAX, но после нажатия кнопки отправки обработанная страница теряется и, следовательно, она возвращает только файл JSON.

Я на самом делея пытаюсь обновить часть страницы, не перезагружая ее целиком, но я не могу сохранить шаблон после нажатия кнопки отправки.

Я даже пытался API истории HTML5 изменить URL без обновления, но этодаже дает мне ту же ошибку.

Это весь мой код

app.post('/login',function(req,res){

    dbo.collection("user").find({$and:[{"email":req.body.email},{'password':req.body.password}]}).count().then(function(result){
      if(result==1){
        dbo.collection("user").findOne({$and:[{"email":req.body.email},{'password':req.body.password}]}, function(err, r) {
        req.session.email=req.body.email;
          if (err) throw err;
          res.render('login', {name:r.name,email:  req.body.email,password: req.body.password,status: "Match Found!"});

        });
      }
      else{
        console.log('Match not found');
        res.render('error_msg', { email:  req.body.email,password: req.body.password,status: "Match Not found!"});
      }
    });
});



app.get('/login/email/:email',function(req,res){
  dbo.collection("user").findOne({"email":req.params.email},function(er,r){
    if(er) 
      throw er;
    if(r){
      res.render('login',{email_search:r.name});
    }
    else{
      res.render('login',{email_search:'No User Found!'});
    }
   });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...