Как исправить синтаксическую ошибку EJS: «отсутствует ) после списка аргументов»

#ejs

#ejs

Вопрос:

Я пытаюсь исправить эту ошибку, но я не могу понять, в чем проблема. Я просто распечатываю файл JSON в EJS динамически.

Мой файл маршрутизации:

       ExcelRoute.get('/table', (req, res) => {
           var guest = 'karan'
            var myData = [{
      "Main Category": "Men",
      "Category": "Shoes",
      "Sub-Category": "Running"
    },
    {
      "Main Category": "Women",
      "Category": "Clothing",
      "Sub-Category": "Tees"
    },
    {
      "Main Category": "Kids",
      "Category": "Accessories",
      "Sub-Category": "Bags"
    },
    {
      "Main Category": "Sports",
      "Category": "Sport",
      "Sub-Category": "Training"
    },
    {
      "Main Category": "Collection",
      "Category": "",
      "Sub-Category": ""
    },
    {
      "Main Category": "Sale",
      "Category": "",
      "Sub-Category": ""
    },
    {
      "Main Category": "",
      "Category": "",
      "Sub-Category": ""
    },
    {
      "Main Category": "",
      "Category": "",
      "Sub-Category": ""
    },
    {
      "Main Category": "",
      "Category": "",
      "Sub-Category": ""
    },
    {
      "Main Category": "",
      "Category": "",
      "Sub-Category": ""
    },
    {
      "Main Category": "",
      "Category": "",
      "Sub-Category": ""
    }
  ]

        res.render('indexpage', {
        user: myData,
        guest: guest
        })
      })  

Я использовал EJS для печати массива объектов с использованием EJS. Но это выдает мне ошибку:

отсутствует ) после списка аргументов.

Мой код HTML-файла

           <form method="GET" action="table">
            <button onclick="loadTable()">GenTable</button>
          </form>
  

Мой код файла EJS:

     <body>
        <h1>Welcome <%=guest%></h1>
        <ul>
            <% user.forEach((menu)=>{ %>
                <a href="#"><li><%=menu.Main Category%></li></a>
                <a href="#"><li><%=menu.Category%></li></a>
                <a href="#"><li><%=menu.Sub Category%></li></a>
            <% }) %>
        </ul>
    </body>
  

Ответ №1:

Вы должны заключить каждое свойство в квадратные скобки.

 <% user.forEach((menu)=>{ %>
     <a href="#"><li><%=menu['Main Category']%></li></a>
     <a href="#"><li><%=menu['Category']%></li></a>
     <a href="#"><li><%=menu['Sub Category']%></li></a>  
 <% }) %>