本文介绍了用户登录不适用于 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
发布评论