还没找到原因。。。
引用时改成<% if (!locals.user) { %>好用了
这个不懂 具体点 不知道怎么替换。。
【解决方法】 index.js 内开头添加一行定义: var User = require(’…/models/user’);
你好,我也碰到了这个问题,改成<% if (!locals.user) { %>确实不会报错了,但是好像这个永远为真,我想问的是 req.session.user = user; session里的user和这个有何种关系?
我也遇到了一样的问题,而且报错的位置很奇怪: ReferenceError: /Users/windrunner/WebstormProjects/microblog/views/index.ejs:13 11| <div class=“row”> 12| <div class=“span4”>
13| <h2>div1</h2> 14| <p>p1</p> 15| </div> 16| <div class=“span4”>
这个方法不能解决,附index.js代码如下:
var User = require(’…/models/user’);
module.exports = function(app){ app.get(’/’, function(req, res){ res.render(‘index’, { title: ‘首页’ }) });
app.get('/reg', function(req, res){ res.render('reg',{ title: '用户注册' }); }); //var util = require('util'); app.post('/reg', function(req, res){ //校验两次输入的口令是否一致 if (req.body['password-repeat'] != req.body['password']){ req.fresh('error', '两次输入的密码不一致'); return res.redirect('/reg'); } var crypto = require('crypto'); var crypto = require('crypto'); //生成md5散列值 var md5 = crypto.createHash('md5'); var password = md5.update(req.body.password).digest('base64'); var newUser = new User({ name: req.body.username, password: password }); User.get(newUser.name, function(error, user){ if(user){ error = 'Username already exsits.'; } if(error){ req.flash('error', error); return res.redirect('reg'); } //如果不存在则新增用户 newUser.save(function (error){ if(error){ req.flash('error', error); return res.redirect('req'); } req.session.user =new User; req.flash('success', '注册成功'); res.redirect('/'); }) }); });
};
###可以试试这样###
app.get('/login', function (req, res) { res.render('login', { title: '登录', user: req.session.user, success: req.flash('success').toString(), error: req.flash('error').toString()}); });
我是在看《Node.js开发指南》时,运行代码遇到的,提示layout.ejs里的title为undefined。
应该是表单的数据没有传到后台吧,是只有user没有拿到,还是所有表单数据都没拿到,检查一下你的表单代码
req.session.user = user;??你的代码里只有req.session.user = new User;。这个是指在没有该用户信息的创建一个,并且把它放到请求的session里面
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
引用时改成<% if (!locals.user) { %>好用了
这个不懂 具体点 不知道怎么替换。。
【解决方法】 index.js 内开头添加一行定义: var User = require(’…/models/user’);
你好,我也碰到了这个问题,改成<% if (!locals.user) { %>确实不会报错了,但是好像这个永远为真,我想问的是 req.session.user = user; session里的user和这个有何种关系?
我也遇到了一样的问题,而且报错的位置很奇怪: ReferenceError: /Users/windrunner/WebstormProjects/microblog/views/index.ejs:13 11| <div class=“row”> 12| <div class=“span4”>
这个方法不能解决,附index.js代码如下:
var User = require(’…/models/user’);
module.exports = function(app){ app.get(’/’, function(req, res){ res.render(‘index’, { title: ‘首页’ }) });
};
###可以试试这样###
我是在看《Node.js开发指南》时,运行代码遇到的,提示layout.ejs里的title为undefined。
应该是表单的数据没有传到后台吧,是只有user没有拿到,还是所有表单数据都没拿到,检查一下你的表单代码
req.session.user = user;??你的代码里只有req.session.user = new User;。这个是指在没有该用户信息的创建一个,并且把它放到请求的session里面