猿问

node+express处理登录的时候出错

这是index.js中登录的代码
app.get('/login',function(req,res){
res.render('login',{title:'登录'});
});
app.post('/login',function(req,res){
//生成密码的md5值
varmd5=crypto.createHash('md5'),
password=md5.update(req.body.password).digest('hex');
//检查用户是否存在
User.get(req.body.name,function(err,user){
if(!user){
req.flash('error','用户不存在!');
returnres.redirect('/login');//用户不存在则跳转到登录页
}
//检查密码是否一致
if(user.password!=password){
req.flash('error','密码错误!');
returnres.redirect('/login');//密码错误则跳转到登录页
}
//用户名密码都匹配后,将用户信息存入session
req.session.user=user;
req.flash('success','登录成功!');
res.redirect('/');//登录成功后跳转到主页
});
但是运行后出现错误,为:
Express
500ReferenceError:/home/lu/node/blog/views/login.ejs:15


userisnotdefined
userisnotdefined
at__line(evalat(/home/lu/node/blog/node_modules/ejs/lib/ejs.js:464:12),:14:12)
ateval(evalat(/home/lu/node/blog/node_modules/ejs/lib/ejs.js:464:12),:39:9)
atreturnedFn(/home/lu/node/blog/node_modules/ejs/lib/ejs.js:493:17)
atView.exports.renderFile[asengine](/home/lu/node/blog/node_modules/ejs/lib/ejs.js:350:31)
atView.render(/home/lu/node/blog/node_modules/express/lib/view.js:76:8)
atFunction.app.render(/home/lu/node/blog/node_modules/express/lib/application.js:504:10)
atServerResponse.res.render(/home/lu/node/blog/node_modules/express/lib/response.js:801:7)
at/home/lu/node/blog/routes/index.js:60:7
atcallbacks(/home/lu/node/blog/node_modules/express/lib/router/index.js:164:37)
atparam(/home/lu/node/blog/node_modules/express/lib/router/index.js:138:11)
求高人解答。。。
阿波罗的战车
浏览 662回答 2
2回答

喵喔喔

修改代码为:app.get('/login',function(req,res){res.render('login',{title:'登录',user:req.session.user,success:req.flash('success').toString(),error:req.flash('error').toString()});

慕桂英546537

要学会看报错:报错已经写得很清楚了userisnotdefined,就是说你的user没有定义,没有这个东西存在你就引用了。代码在/home/lu/node/blog/routes/index.js的60行里。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答