用户登录不适用于 node.js 和 mongoose [英] User Login is not working with node.js and mongoose
本文介绍了用户登录不适用于 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屋!
查看全文