如何使 .js 变量可访问 .ejs 文件
How to make .js variables accessible to .ejs files
我有一个 index.js 文件和一个 list.ejs 文件,我告诉 express 文件包括:
index.js:
const express = require("express");
const app = express();
app.set("view engine", "ejs"); //Express Template Engine = embedded js
app.set("views", __dirname + "\views");
let varToUseInEJS = 5;
app.get("/", (req, res) => {
console.log("Path of Request: " + req.path);
res.render("list");
});
app.listen(8080, "localhost", 1, () => {
console.log("Example app listening on: 127.0.0.1:8080");
})
list.ejs:
<!DOCTYPE html>
<html>
<body>
<table>
<tr>
<th>Number</th>
</tr>
<% for(let i = 1; i < varToUseInEJS; i++) { %>
<tr>
<td>
<%= i %>
</td>
</tr>
<% } %>
</table>
</body>
</html>
当我将 "varToUseInEJS" 更改为例如 5 时,它起作用并显示 table 1 到 5 + header,但在这种情况下,node.js调试器给我以下错误:
>> 9| <% for(let i = 1; i < varToUseInEJS; i++) { %>
10| <tr>
11| <td>
12| <%= i %>
varToUseInEJS is not defined
有什么方法可以使所有 .js 文件的变量自动对 ejs 文件可见?
在此先感谢您的帮助。
这会将 varToUse
传递给 sheet。注意第二个参数只是一个JS对象。
app.get('/', (req, res) => {
res.render('list', {'varToUse': 5});
}
要概括@Francisco,您还可以将 varToUseInEJS
作为变量传入。只需确保您传入的变量名称 res.render()
与您的 EJS 表达式中的名称相匹配即可。
`app.get('/', (req, res) => {
res.render('list', {'varToUseInEJS': varToUseInEJS});
}`
key varToUseInEJS 指的是 .ejs 文件……并且……value varToUseInEJS 指的是 .js 文件
app.get('/', (req, res) => {
res.render('list', {varToUseInEJS: varToUseInEJS});
}
我有一个 index.js 文件和一个 list.ejs 文件,我告诉 express 文件包括:
index.js:
const express = require("express");
const app = express();
app.set("view engine", "ejs"); //Express Template Engine = embedded js
app.set("views", __dirname + "\views");
let varToUseInEJS = 5;
app.get("/", (req, res) => {
console.log("Path of Request: " + req.path);
res.render("list");
});
app.listen(8080, "localhost", 1, () => {
console.log("Example app listening on: 127.0.0.1:8080");
})
list.ejs:
<!DOCTYPE html>
<html>
<body>
<table>
<tr>
<th>Number</th>
</tr>
<% for(let i = 1; i < varToUseInEJS; i++) { %>
<tr>
<td>
<%= i %>
</td>
</tr>
<% } %>
</table>
</body>
</html>
当我将 "varToUseInEJS" 更改为例如 5 时,它起作用并显示 table 1 到 5 + header,但在这种情况下,node.js调试器给我以下错误:
>> 9| <% for(let i = 1; i < varToUseInEJS; i++) { %>
10| <tr>
11| <td>
12| <%= i %>
varToUseInEJS is not defined
有什么方法可以使所有 .js 文件的变量自动对 ejs 文件可见?
在此先感谢您的帮助。
这会将 varToUse
传递给 sheet。注意第二个参数只是一个JS对象。
app.get('/', (req, res) => {
res.render('list', {'varToUse': 5});
}
要概括@Francisco,您还可以将 varToUseInEJS
作为变量传入。只需确保您传入的变量名称 res.render()
与您的 EJS 表达式中的名称相匹配即可。
`app.get('/', (req, res) => {
res.render('list', {'varToUseInEJS': varToUseInEJS});
}`
key varToUseInEJS 指的是 .ejs 文件……并且……value varToUseInEJS 指的是 .js 文件
app.get('/', (req, res) => {
res.render('list', {varToUseInEJS: varToUseInEJS});
}