Как использовать шаблон в операторе l oop в E JS? - PullRequest
1 голос
/ 01 мая 2020

Я делаю проект Node JS на основе Express, который распечатывает определенный массив элементов из данного набора массивов, используя E JS l oop.

app.get("/:animal", function(req,res) {
var animal = req.params.animal;
var cats = [
    { name : "Mittens", age : 7},
    { name : "Kitty", age : 11},
    { name : "Smoogy", age : 3}
];
var dogs = [
    { name : "Rusty", age : 14},
    { name : "Matt" , agee : 7},
    { name : "Holly" , age : 9}
]

res.render("abc.ejs", {animal : animal, cats : cats, dogs : dogs});

Эти мои 2 массива, и я должен распечатать любой из них на основе значения параметра животного. Я хочу сделать это, не записывая forEach l oop отдельно для кошек и собак в файл E JS, скорее хочу печатать на основе значения параметра животного. Как это сделать? Я пытался использовать вложенные теги <%%>, но не работал

Ответы [ 2 ]

1 голос
/ 01 мая 2020

Я бы порекомендовал использовать объекты в javascript для обработки вашего случая, как указано ниже

В вашем файле маршрута нет необходимости в расширении e js

router.get('/:animal', function(req, res) {
	var animal = req.params.animal;
	var cats = [ { name: 'Mittens', age: 7 }, { name: 'Kitty', age: 11 }, { name: 'Smoogy', age: 3 } ];
	var dogs = [ { name: 'Rusty', age: 14 }, { name: 'Matt', agee: 7 }, { name: 'Holly', age: 9 } ];

	var map = { cats: cats, dogs: dogs };

	res.render('abc', { animals: map[animal] });
});

E js просмотреть файл, как показано ниже:

<table>
    <tbody>
<% animals.forEach(function(animal) { %>
    <tr>
      <td><%= animal.name %></td>
      <td><%= animal.age %></td> 
    </tr>
  <% }); %> 
</tbody>
</table>

Затем нажмите конечные точки, которые могут меняться в зависимости от вашего порта и хоста http://localhost: 3000 / собак

http://localhost: 3000 / кошек

0 голосов
/ 01 мая 2020

Объедините 2 массива в один большой

var animals=cats.push(...dogs)
res.render("abc.ejs", {animal , animals });
...