我想将数据传递给ejs布局中的include。我正在使用express和express-partials
在controller.js中我有这个:
exports.index = function(req, res, next) {
res.render('index', {uptime:'3'});
};
这是layout.ejs:
<!DOCTYPE html>
<html>
<head>
<%- include head %>
</head>
<header>
<%- include nav %>
</header>
<body>
<section>
<%- body %>
</section>
</body>
<footer>
</footer>
</html>
这是nav.ejs:
<li><%= uptime %></li>
我收到此错误:
ReferenceError: /root/apps/webpanel/webpanel/views/nav.ejs:23
21| </li>
22| </ul>
>> 23| <li><%= uptime %></li>
24|
25|
26|
uptime is not defined
如果我将正常运行时间放在index.ejs中,则错误消失,但我希望获得导航和正文的不同视图...
正确工作的最佳解决方案是什么?或者我做错了什么?:/ 谢谢!!
答案 0 :(得分:0)
也许在此代码中:res.render('index', { uptime : '3'});
您选择呈现index.ejs
但是uptime
layout.ejs
键
你说res.render('layout', { uptime: '3'});
做得很好
您应该了解.render()
含义的第一个参数,并确保您需要呈现哪个模板。
答案 1 :(得分:0)
我建议你进入会话,在某些路线上访问,有点像:
exports.index = function(req, res, next) {
req.session.uptime = 3;
res.render('index');
};
和
<li><%= session.uptime %></li>