【问题标题】:Empty parameters sent to EJS on render渲染时发送到 EJS 的空参数
【发布时间】:2015-02-17 03:47:42
【问题描述】:

我对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"
}

有什么想法吗?

【问题讨论】:

    标签: node.js express ejs embedded-javascript


    【解决方案1】:

    尝试改变

    <% user %>
    

    <%= user %>
    

    据我所知,这是输出模板变量的常用语法。

    【讨论】:

    • 嗯...谢谢。正如你所指出的,我错过了'=',呵呵。我想我太累了,没有注意到
    猜你喜欢
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 2016-03-01
    • 2019-02-03
    • 2019-02-13
    相关资源
    最近更新 更多