EJS не отображает HTML в промежутках между сценариями

#javascript #node.js #express #ejs

Вопрос:

У меня есть следующий код:

  <%
    // 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 и отобразить их, но на самом деле это не визуализация. Вход в консоль работает нормально.

Заранее спасибо!

Ответ №1:

Другой подход. Вы можете извлечь ресурсы перед отображением своей страницы(res.render), а затем передать их в качестве реквизитов при отображении этой страницы. Подобный этому:-

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

А затем вы можете просмотреть массив активов, и код в файле ejs выглядит следующим образом:-

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

Комментарии:

1. Я хочу, чтобы он получал данные каждый раз, когда страница обновляется, поэтому передача ее в качестве опоры не будет работать, потому что тогда она будет обновляться только при перезапуске сервера

2. Я так не думаю, потому что всякий раз, когда вы делаете запрос на «/yourPage», он будет запрашивать API и извлекать данные в вашем контроллере, а затем снова передавать их в ваш файл ejs в качестве поддержки, поэтому вам не нужно перезапускать сервер снова и снова.