为什么 mypartial.ejs 没有显示?

Why is mypartial.ejs not showing?

我正在尝试借助 Jonathan Wrexler 的书 "Get programming with node.js" 来学习 node.js。在第 10 章中非常简要地解释了 partials 的使用,但我没有让它工作。

我在 partials 文件夹中创建了一个 nav.ejs,如下所示:

<ul>
  <li>One</li>
  <li>Two</li>
  <li>Three</li>
</ul>

书中的layout.ejs-例子是这样的:

  <body>
    <header>Header</header>
    <nav>
      <% include partials/nav %>
    </nav>
    <%- body %>
    <footer>Footer</footer>
  </body>

但这给了我一个语法错误:

SyntaxError: Unexpected identifier in C:\node-projects\wandelverhalen\views\layout.ejs while compiling ejs

在 Whosebug 的帮助下,我将 include 模板更改为:

<% include ("partials/nav"); %>

这解决了错误,但是当我 运行 时它不显示 nav。页面源代码显示了一个空的 <nav> 标签。

如有任何帮助,我将不胜感激。

为了完整起见,这是我的 index.js:

"use strict";

const port = 3000;
const express = require("express");
const app = express();
const homeController = require("./controllers/homeController");
const layouts = require("express-ejs-layouts");

app
  .set("view engine", "ejs")
  .use(
    express.urlencoded({
      extended: false
    })
  )
  .use(express.json())
  .use(layouts)
  .use((req, res, next) => {
    console.log(`Request made to ${req.url}`);
    next();
  })
  .get("/", homeController.sendReqParam)
  .get("/:myname", homeController.sendReqParam)
  .listen(port, () => {
    console.log(`Server is running on port ${port}`);
  });

您想使用 <%- include ("partials/nav"); %> 来呈现您的部分。 <% 仅用于脚本和控制流,不产生任何输出,因此您看不到任何添加到页面的内容。在 <% 后添加 - 将导致它输出 include ("partials/nav").

的未转义值