#node.js #express #ejs
#node.js #выразить #ejs
Вопрос:
```<div class="box" id="heading">
<h1><%= itemTitle %></h1>
</div>
<div class="box">
<% newListItems.forEach((item)=>{%>
<form action="/delete" method="POST">
<div class="item">
<input type="checkbox"
name="checkbox"
value="<%= item._id %>"
onchange="this.form.submit()"
/>
<p><%= item.name %></p>
</div>
</form>
<%})%>```
```app.get("/", function (req, res) {
Item.find((err, items) => {
if (err) {
console.log(err);
} else {
res.render("list", { itemTitle: "Booyah", newListItems:
items });
}
});
}); ```
```ReferenceError: /Users/apple/Documents/todolist-v2-starting-
files/views/list.ejs:4
2|
3| <div class="box" id="heading">
>> 4| <h1><%= itemTitle %></h1>
5| </div>
6|
7| <div class="box">
itemTitle is not defined```
Это работает, но я продолжаю получать последний код в своей консоли. но когда я вынимаю «itemTitle», он работает с newListItems без ошибок. Это заставляет меня добавлять больше контекста, но, если серьезно, я знаю, что еще добавить. Я новичок, и я взломал кучу разных вариантов, чтобы заставить его работать, парень из discord не смог помочь. Спасибо, что проверили это.
Комментарии:
1. codepen.io/drake-ashmond-coleman/pen/VwjEdaX
2. В этом codepen вы не переходите
itemTitle
к шаблону, аtitle
вместо этого. Это опечатка?3. никакой опечатки, только с того момента, как я опубликовал этот вопрос, я пробовал разные попытки. Предположим, что данные передаются, совпадают и работают, но ошибка сохраняется
4. Есть ли шанс, что вы можете поделиться своим кодом, например, через github? Я пока не смог воспроизвести это.
5. да, конечно. дайте мне одну секунду, чтобы настроить его
Ответ №1:
Я клонировал ваш репозиторий, и пока он работает нормально. Единственное, что приходит на ум, это когда вы запрашиваете определенный список через app.get("/:customListName") {...}
. Там вы не передаете a title
шаблону, и, очевидно, это приведет ejs
к сбою рендеринга шаблона:
if (!foundList) {
// ...
res.render("list" foundList.name "", {
newListItems: foundList.items,
});
} else {
res.render("list", { newListItems: foundList.items });
}
Поэтому вы должны исправить это на что-то вроде (еще лучше было бы отобразить шаблон для «Список не найден»):
if (!foundList) {
// ...
res.render("list", {title: 'Custom List', newListItems: []});
} else {
res.render("list", {title: 'Custom List', newListItems: []});
}
Комментарии:
1. @Drake: я могу создать запрос на извлечение, если хотите, просто дайте мне знать.
2. Был бы признателен за обратную связь — какие-либо обновления?