登录页面路由功能代码如下:
app.post('/login', function(req, res) { var md5 = crypto.createHash('md5'), password = md5.update(req.body.password).digest('hex'); //检查用户是否存在 User.get(req.body.name, function (err, user) { if (!user) { req.flash('error', '用户不存在!'); return res.redirect('/login');//用户不存在则跳转到登录页 } //检查密码是否一致 if (user.password != password) { req.flash('error', '密码错误!'); return res.redirect('/login');//密码错误则跳转到登录页 } //用户名密码都匹配后,将用户信息存入 session req.session.user = user; req.flash('success', '登陆成功!'); res.redirect('/index');//登陆成功后跳转到主页 }); });
登录时,会自动跳到错误页面。控制面板会打印出 POST /p_login 500 86.077 ms - 660
后来在调试时,发现是在这个路由规则里面获取不到req.body等参数。console.log(req.body.name)会打印出来undefined。 但是有安装body-parser中间件,并且在app.js页面里面有引入border.parser如下:
var bodyParser = require('body-parser');
app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false }));
求解!以上错误是怎样造成的,还有怎样才能获取到req.body参数。 搜索了好多文章,也没有找到解决问题的方法,真心求解!谢谢各位。