Невозможно сделать HTTP-запрос - PullRequest
0 голосов
/ 28 апреля 2018

Я пытаюсь войти в систему, используя HTTP-запрос.

app.js

//login
app.get('/login', indexRouter); // call to login site
app.post('/login',indexRouter); // post to /users/login site

users.js

router.get('/', function(req, res, next) {
    var message = '';
   var sess = req.session; 

   if(req.method == "POST"){
      var post  = req.body;
      var name= post.user_name;
      var pass= post.password;

      var sql="SELECT id, first_name, last_name, user_name FROM `users` WHERE `user_name`='"+name+"' and password = '"+pass+"'";                           
      db.query(sql, function(err, results){      
         if(results.length){
            req.session.userId = results[0].id;
            req.session.user = results[0];
            console.log(results[0].id);
            res.redirect('/users/home/dashboard');
         }
         else{
            message = 'Wrong Credentials.';
            res.render('index.ejs',{message: message});
         }

      });
   } else {
      res.render('index.ejs',{message: message});
   }         
}); 

Когда я нажимаю на логин, он направляет меня к http://localhost:3000/login с Eror 404, не найденным. Я захожу со своей домашней страницы http://localhost:3000.

Я неправильно выполняю запрос POST?

1 Ответ

0 голосов
/ 28 апреля 2018

Вам необходимо разделить маршрутизатор на два метода: router.get и router.post. Например:

// app.js
// login
app.use('/login', indexRouter); 

// users.js
// call to login site
router.get('/', function(req, res, next) {
  var message = '';
  var sess = req.session; 
  res.render('index.ejs',{message: message});
});

// users.js
// post to /users/login site
router.post('/', function(req, res, next) {
  var message = '';
  var sess = req.session; 

  var post  = req.body;
  var name= post.user_name;
  var pass= post.password;

  var sql="SELECT id, first_name, last_name, user_name FROM `users` WHERE `user_name`='"+name+"' and password = '"+pass+"'";                           
  db.query(sql, function(err, results){      
     if(results.length){
        req.session.userId = results[0].id;
        req.session.user = results[0];
        console.log(results[0].id);
        res.redirect('/users/home/dashboard');
     }
     else{
        message = 'Wrong Credentials.';
        res.render('index.ejs',{message: message});
     }
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...