用户登录不适用于 node.js 和 mongoose [英] User Login is not working with node.js and mongoose

查看:43
本文介绍了用户登录不适用于 node.js 和 mongoose的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 node.js 和 mongoose 进行用户登录.用户注册成功,数据正在插入 mongodb 集合,但是当我尝试使用注册的电子邮件和密码登录时,页面显示 404 错误.

login.js

var express = require('express');var router = express.Router();/* 获取用户列表.*/router.get('/', function(req, res, next) {res.render('登录', { title: 'Express' });});router.post('/login', function(req, res, next){user.findOne({email:req.body.email}, function(err, user){如果(!用户){res.render('登录',{title:'无效'});}别的{if(req.body.password===user.password){res.render('/dashboard',{title:'成功完全登录'});}别的{res.render('登录',{title:'invalide password'});}}});});module.exports = 路由器;

login.ejs

<头><title><%=title%></title><link rel='stylesheet' href='/stylesheets/style.css'/><身体><div style="margin:0 auto ; width:50%; padding:20px"><form action="/login" method="post"><label>电子邮件</label><input type="text" name="email"><br/><br/><br/><br/><label>通过</label><input type="text" name="password"><br/><br/><br/><br/><button>登录</button></表单>

</html>

解决方案

您在路由器中指定登录页面只能通过 POST 查询访问.但是随后您将用户重定向到 /login 页面,您进行了 GET 查询,这就是您得到 404 的原因.

I am trying to user login with node.js and mongoose. User Registration is successfully working and data is inserting in mongodb collection, but when I try to login with registered email and password the page show 404 error.

login.js

var express = require('express');
var router = express.Router();


/* GET users listing. */
router.get('/', function(req, res, next) {
  res.render('login', { title: 'Express' });
});

router.post('/login', function(req, res, next){
user.findOne({email:req.body.email}, function(err, user){
  if(!user){
    res.render('login',{title:'Invalid'});
  }
  else{
    if(req.body.password===user.password){
      res.render('/dashboard',{title:'Success Fully login'});
    }
    else{
      res.render('login',{title:'invalide password'});
    }
  }
});
});

module.exports = router;

login.ejs

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>

  <div style="margin:0 auto ; width:50%; padding:20px">
    <form action="/login"  method="post">
    <label>Email</label>
    <input type="text" name="email">
      <br /> <br /> <br /> <br />
    <label>Pass</label>
    <input type="text" name="password">
      <br /> <br /> <br /> <br />
    <button>Login</button>
      </form>
    </div>
  </body>
</html>

解决方案

You specify in your router that login page can only be accessed with POST query. But then you redirect your user to /login page, you make a GET query, thats why you get 404.

这篇关于用户登录不适用于 node.js 和 mongoose的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆