#javascript #node.js #mongodb #ejs #display
#javascript #node.js #mongodb #ejs #отображение
Вопрос:
Я создаю небольшой форум для своего веб-сайта с помощью Ejs / NodeJS / MongoDB, когда пользователь публикует объект create (title: , comment : , reply: [] , мне нужен массив для ответа, потому что их несколько, мне удалось отобразить мои заголовки в разных элементах Html, комментарийтоже, но когда я пытаюсь отобразить ответ, который отображает весь ответ в одном «
«… это мой код :
<div class="vosQuestions" id="vosQuestions" >
<% for(var i = 0; i < collectionName.length; i ) {%>
<div class="result">
<span id="titreResultat" class="titreResultat"><%=collectionName[i].title%></span>
<div id="commentQuestions" class="commentOff">
<p class="comment"><%=collectionName[i].commentaire%></p>
<div class="trait"></div>
<p class="repArray"><%=collectionName[i].reponse%></p>
<p id="rep2">
<div id="test" class="reprep">
<input id="repBtn" class="repondre" type="button" value="repondre">
</div>
</div>
</div>
<%} %>
Комментарии:
1.
<p class="repArray"><%=collectionName[i].reponse%></p>
где вы хотите отобразить ответ?2. правильно, я хочу создать элемент «<p>» для каждого ответа
3. Вам нужен 2-й внутренний цикл, который повторяется
collectionName[i].reponse
точно так же, как вы уже повторяетеcollectionName
.4. хорошо, но я не могу сделать <% для(var i = 0; i < collectionName.reponse . длина; i ) {%>..
Ответ №1:
как вы ответили в комментариях к вашему вопросу, <p class="repArray"><%=collectionName[i].reponse%></p>
это то место, где вы хотите отобразить ответ.
причина, по которой он отображает весь ответ за один раз (вероятно, в формате JSON), заключается в том, что reply или response
является массивом. чтобы обернуть каждый «ответ» или response
внутри <p>
элемента, вам нужно выполнить итерацию или цикл по каждому из них.
используйте приведенный ниже код в качестве ссылки.
for (let i = 0; i < replies.length; i )
{
<p class="repArray"><%= replies[i] %></p>
}
Комментарии:
1. спасибо за ваш ответ, но на самом деле это невозможно, потому что мне нужно отобразить собственный ответ субъекта, для отображения коллекции с помощью узла мой код таков: app.get(«/ vosQuestions»,async (req,res)=>{ try{ const db = client.db(‘dedDB’); db.collection(‘POST’).find().toArray(функция(ошибка, результат){ if (ошибка) { return console.log(ошибка) } res.render(«vosQuestions»,{collectionName: результат }) })
2. перебирая массив collectionName[i].response , вы можете отображать эти ответы один за другим
3. ха-ха, что я пытаюсь сделать.. но я не могу сделать: <% for(var i = 0; i < collectionName.reponse . длина; i ) {%> как я могу это сделать?
4. что вы
collectionName[0].response
возвращаете?5. ответный массив из первого объекта