【问题标题】:How can I use a variable created inside server.js in my ejs script tag?如何在我的 ejs 脚本标签中使用在 server.js 中创建的变量?
【发布时间】:2021-07-24 10:35:58
【问题描述】:

我正在构建我的第一个具有大量文件管理的 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 %>;

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

【问题讨论】:

    标签: javascript node.js express ejs


    【解决方案1】:

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

    为了在 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。我们可以通过以下方式在视图中使用它:

    &lt;% files %&gt;

    【讨论】:

    • 您好,请编辑您的答案,解释为什么这可以解决作者的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    相关资源
    最近更新 更多