【问题标题】:EJS not rendering HTML in between scriptsEJS 不在脚本之间呈现 HTML
【发布时间】:2021-07-24 16:58:10
【问题描述】:

我有以下代码:

 <%
    // fetching from a cdn api
    cloudinary.api.resources(
    {
        type: 'upload',
        prefix: ''
    },
    (error, result) => {
      const assets = result.resources
      
      // console.log(assets)
      %>
      
      anything i have here isnt rendered
      
<% }) %>

我基本上想用 forEach 遍历 assets 数组中的每个项目并渲染它们,但它实际上并没有渲染。登录控制台工作正常。

提前致谢!

【问题讨论】:

    标签: javascript node.js express ejs


    【解决方案1】:

    另一种方法。您可以在渲染页面之前获取资源(res.render),然后在渲染页面时将它们作为道具传递。像这样:-

    res.render("PATH",{assets:result.resources})
    

    然后你可以遍历 assets 数组,ejs 文件中的代码如下所示:-

    <% assets.forEach(assest => { %>
                  "MARKUP CODE"              
              <% }) %>
    

    【讨论】:

    • 我希望它在每次刷新页面时都获取数据,因此将其作为道具传递将不起作用,因为它只会在服务器重新启动时刷新
    • 我不这么认为,因为每当您向“/yourPage”发出请求时,它都会向 API 发出请求并在您的控制器中获取数据,然后再次将其作为道具传递给您的 ejs 文件所以你不需要一次又一次地重启服务器。
    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    • 2016-02-15
    • 2014-02-17
    • 1970-01-01
    相关资源
    最近更新 更多