我正在尝试借助 Jonathan Wrexler 所著的《使用 Node.js 进行编程》一书来学习 Node.js。第 10 章非常简要地解释了分部的使用,但我并没有让它发挥作用。
我做了一个nav.ejs
在 partials
- 文件夹如下所示:
<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
在 stackoverflow 的帮助下,我更改了 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")
.
关于node.js - 为什么 mypartial.ejs 没有显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60474736/