错误如下: 500 ReferenceError: E:\nodejs\lianxi\microblog\views\index.ejs:1 >> 1| <%if(!user){%> 2| 3| 歡迎來到 Microblog 4| Microblog 是一個基於 Node.js 的微博系統。 posts is not defined
1| <%if(!user){%> 2| 3| 歡迎來到 Microblog 4| Microblog 是一個基於 Node.js 的微博系統。 posts is not defined at eval (eval at (E:\nodejs\lianxi\microblog\node_modules\ejs\lib\ejs.js:242:14), :32:32) at eval (eval at (E:\nodejs\lianxi\microblog\node_modules\ejs\lib\ejs.js:242:14), :35:23) at eval (eval at (E:\nodejs\lianxi\microblog\node_modules\ejs\lib\ejs.js:242:14), :35:630) at E:\nodejs\lianxi\microblog\node_modules\ejs\lib\ejs.js:255:15 at Object.exports.render (E:\nodejs\lianxi\microblog\node_modules\ejs\lib\ejs.js:293:13) at View.exports.renderFile [as engine] (E:\nodejs\lianxi\microblog\node_modules\ejs\lib\ejs.js:323:20) at View.render (E:\nodejs\lianxi\microblog\node_modules\express\lib\view.js:76:8) at Function.app.render (E:\nodejs\lianxi\microblog\node_modules\express\lib\application.js:504:10) at ServerResponse.res.render [as partial] (E:\nodejs\lianxi\microblog\node_modules\express\lib\response.js:798:7) at ServerResponse.res.render (E:\nodejs\lianxi\microblog\node_modules\express-partials\index.js:58:9)
index.ejs代码如下: <%if(!user){%>
回复 (8)
nodejs的这种报错不一定是posts undefined 而是你页面中存在其他问题 比如说 JS没加载 或者模板渲染出错等。他都会报这个问题
终于解决了,这个原因是因为在index.js里面需要将posts:posts放进那个render()里面,这样才能够在后面的ejs里面调用。之前没有注意这个问题,昨天忽然想明白了。。。
首先看下res.render('login',{ posts:posts });有木有?其次看下渲染页面上有没有写错
有这个代码,渲染页面就是上面那个index.ejs app.get('/',function(req,res){ Post.get(null,function(err,posts){ if(err){ posts=[]; } res.render('index',{ title:'首页', posts:posts, }); }); });
ReferenceError: E:\nodejs\lianxi\microblog\views\index.ejs:3 1| 2|
3| 4| 5| 6| <%include header.ejs%>
posts is not defined at buf.push. .buf.push. .
可能是没数据。。。也可能在哪里被重置了。。。基础知识啊。。。