我对nodejs很新,我一直在努力解决这个问题,到目前为止我找不到问题。
在我的应用程序中的某个时刻,我使用一些参数渲染EJS模板,但似乎即使获得参数,它们也是空的....
我测试了最基本的案例:
console.log(req.user);
res.render('menu.ejs', { user: String(req.user.username) });
控制台输出:
{ id: 1,
username: 'bob',
password: 'secret',
email: 'bob@example.com' }
所以我不发送空值。 menu.ejs代码如下:
<html>
<body>
<% user %>
</body>
</html>
真的很简单。但是当页面被渲染时,我得到的只是一个空白的页面......即使有一些HTML,我也只是为用户提供空值...
在我的应用程序的某个时刻,我使用护照来验证我的用户,并使用闪存,我设法通过以下方式收到消息:
res.render('login.ejs', { message: req.flash('message') });
但是这仍然让我的menu.ejs错误。我已经重命名了文件,重命名了传递的参数,添加了更多的参数,并对传递的参数的值进行了编码......我总是得到相同的结果=(
项目依赖项:
"dependencies": {
"express": "~4.9.x",
"express-session": "1.9.3",
"mysql ": "2.5.3",
"body-parser": "1.10.0",
"passport": "0.2.1",
"passport-local": "1.0.0",
"connect-flash": "0.1.1",
"cookie-parser": "1.3.3",
"ejs": "1.0.0"
}
有什么想法吗?
答案 0 :(得分:4)
尝试更改
<% user %>
到
<%= user %>
因为这是输出模板变量的常用语法,据我所知(不熟悉ejs)。