是什么导致Express无法将我的变量传递到EJS模板中?

时间:2019-07-26 06:31:07

标签: express ejs

Express不会将我的变量传递到EJS模板中。

我已阅读thisthisthisthisthisand thisThe most promising one is this ...没有骰子。

我没有发现这些有用的东西。

我尝试从<%- loggedIn %> to no spaces <%-loggedIn%>, making the object in Express simple res.render('test',{loggedIn:“ Simple”}). I've tried app.set(“ view options”,{定界符:“? “});`like I saw in the EJS/Express wiki,没有骰子。

// /backend/router.js
const app = express();

app.set("view engine", "ejs");
app.set("view options", { delimiter: "?" });

app.use("/", (req, res) => {
  res.render("test", { loggedIn: "Test" });
});

// /views/test.ejs
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title> </title>
</head>

<body>
  User logged in: <%- loggedIn %>
</body>

</html>

我希望在进入localhost:8035时显示“用户登录:测试”。相反,我得到了ReferenceError, loggedIn not defined.

1 个答案:

答案 0 :(得分:0)

所以我确实知道Express服务器运行时会缓存路由文件。在重新启动之前,对编辑器中的routes文件所做的新更改不会反映出来。我知道这一点,但是当我之前重新启动时,重新启动服务器时必须传递了不正确的变量。我再次重新启动服务器,错误不再存在。

但是现在它只显示User logged in: <%= loggedIn %> ...