【问题标题】:Pass variables to res.render in node.js?将变量传递给 node.js 中的 res.render?
【发布时间】:2015-12-24 19:33:51
【问题描述】:

我是 node.js 的初学者。
我的 index.ejs 文件包含一个 header.ejs 文件。除了我无法将值传递给header.ejs 中的变量status 之外,一切都运行良好。

index.ejs

<html>
.
.
<title> <%= title %> </title>
.
.
<% include ../partial/header.ejs %>
.
.
</html>

header.ejs

<header>
.
.
<p>logged in status: <%= status %> </p>
.
.
</header>

app.js

.
.
.
app.get('/', function(req, res)
{
    // not working :(
    res.render('index', {
        "status":"loggedin",
        "title":"home"
    });
});
.
.
.

【问题讨论】:

    标签: javascript node.js express ejs


    【解决方案1】:

    你的结构有点乱。

    1. &lt;title&gt; 应在 &lt;head&gt; 内。
    2. &lt;p&gt; 应在 &lt;body&gt; 范围内。
    3. 请注意,您可能在模板中混淆了&lt;head&gt;&lt;header&gt; 标记。可以通过here了解区别。

    这是一个我希望对你有用的例子:

    index.ejs:

    <html>
    <head>
        <title> <%= title %> </title>
    </head>
    <body>
        <% include ../partial/header %>
    </body>
    </html>
    

    header.ejs:

        <p>logged in status: <%= status %> </p>
    

    【讨论】:

    • 谢谢。我知道这一点,而且我不会与 header 和 head 混淆。我只是尖叫着把注意力集中在我的问题上。 App.js 呈现 index.ejs。但是要渲染 index.ejs 它需要先渲染 header.ejs。我怎样才能做到这一点?有什么替代方法吗?
    • @WWJ,尝试从包含语法中删除 .ejs。在 EJS 中,您可以包含任何模板文件,只要您的节点进程具有读取权限即可。
    • 是的,完美。这正是我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多