gpt4 book ai didi

node.js - 为什么 mypartial.ejs 不显示?

转载 作者:行者123 更新时间:2023-12-04 10:29:21 27 4
gpt4 key购买 nike

我正在尝试借助 Jonathan Wrexler 所著的“使用 node.js 进行编程”一书来学习 node.js。在第 10 章中非常简要地解释了部分的使用,我没有让它工作。

我做了一个 nav.ejspartials - 看起来像这样的文件夹:

<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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com