Express不会将我的变量传递到EJS模板中。
我已阅读this,this,this,this,this,and this。 The 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.
答案 0 :(得分:0)
所以我确实知道Express服务器运行时会缓存路由文件。在重新启动之前,对编辑器中的routes文件所做的新更改不会反映出来。我知道这一点,但是当我之前重新启动时,重新启动服务器时必须传递了不正确的变量。我再次重新启动服务器,错误不再存在。
但是现在它只显示User logged in: <%= loggedIn %>
...