EJS 未渲染

问题描述 投票:0回答:1

index.js

import express from "express";
import bodyParser from "body-parser";

const app = express();
const port = 3000;

app.set("view engine", "ejs");

app.use(bodyParser.urlencoded({ extended: true }));

app.get("/", (req, res) => {
  res.render("index.ejs");
});

app.post("/submit", (req, res) => {
  const numLetters = req.body["fName"].length + req.body["lName"].length;
  res.render("index.ejs", { numberOfLetters: numLetters });
});

app.listen(port, () => {
  console.log(`Server running on port ${port}`);
});


index.ejs

   <!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Name Letters</title>
</head>

<body>
  <!-- Write your code here -->
  <h1>Write your name below</h1>
  <% if(locals.numberOfLetters){ %>
    <h1>There are <%= numberOfLetters %> letters in your name.</h1>
    <% } %>
      <form action="/submit" method="POST">
        <input type="text" name="fName" placeholder="First name">
        <input type="text" name="lName" placeholder="Last name">
        <input type="submit" value="OK">
      </form>
</body>

</html>

OUTPUT File Hierarchy

有人可以帮助我吗?我已经安装了所有必需的库。

这不是一个大问题,所以我已经尝试了在互联网上可以找到的所有方法。 我之前的活动已成功渲染,这次我没有做任何不同的事情。

javascript node.js web ejs
1个回答
0
投票

最可能的原因是没有设置views文件夹的位置

app.set("view engine", "ejs");    
app.set('views', './views' );

...
© www.soinside.com 2019 - 2024. All rights reserved.