首页 > 解决方案 > 如何在我的 ejs 脚本标签中使用在 server.js 中创建的变量?

问题描述

我正在构建我的第一个 NodeJS 项目,它有很多文件管理。我认为为了让我的生活更轻松,在我的一个 ejs 文件中存在的脚本标记中获取在我的 server.js 中创建的传递变量将是有益的。这是我要使用的代码示例:

// My server.js file - I want to use the variable "files" inside my ejs script tag
app.get('/feed', (req, res) => {
    let files = fs.readdirSync("./uploads");
    res.status(200).render('feed', {files});
});
// My ejs file - this is what I found on Google and tried, yet it did not work
    <% let f = files %>
  </body>
  <script>
    let getFiles = <%= f %>;

有没有办法实现我想要的?任何帮助都会有所帮助!!

标签: javascriptnode.jsexpressejs

解决方案


因此,为了使用在前端创建的服务器端变量,您需要将其作为道具传递。

为了在 express 中将 props 传递给视图,我们在 res.render 方法中传入一个对象作为第二个参数:

我们不能只传入一个变量或其他东西作为道具。我们需要先重新分配它们。

res.render(view, {
  prop1: value,
  prop2: newValue,
});

在这里,我们将 value 和 newValue 分别重新分配给 prop1 和 prop2。

所以,你的问题的解决方案,

res.status(200).render('feed', {f: files})

在这里,我们简单地获取 files 变量并将其作为 prop 传递,将其重新分配给名称 f。我们可以通过以下方式在我们的视图中使用它:

<% files %>


推荐阅读