Нет движка рендеринга, нет фреймворка, кроме экспресса.
Мы хотим отобразить любой список из запроса к базе данных без помощи механизма рендеринга.
Что такое голый код, эквивалентный механизму рендеринга для списков данных?
Это пример с мопсом, затем с html:
app.js
collection.query(q, function(err, docs) {
if (err) {
res.status(500).send({
error: err
});
return;
}
console.info("Got docs: ",docs);
res.render('layout', {
data : docs
});
});
HTML
<ul type = "1">
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ul>
Как вы кодируете это для рендеринга без мопса с данными, поступающими из ответа на запрос?
ul
each item in data
li=item.name
Если вы генерируете html таким образом, вы вскоре столкнетесь с теми же проблемами, с которыми столкнулись создатели этих механизмов шаблонов, которые побудили их в первую очередь разработать механизмы шаблонов.






const createList = items => `<ol>${items.map(i => `<li>${i}<li/>`).join("")}<ol/>`;
collection.query(q, function(err, docs) {
if (err) {
res.status(500).send({
error: err
});
return;
}
console.info("Got docs: ",docs);
res.send(createList(docs))
});
Используя стрелочные функции и литералы шаблонов, вы можете изменить стрелочные функции на обычные functions, а литералы шаблонов — на строку, объединенную +, если вы используете более старую версию nodejs.
Здесь, если кто-то даст ответ на ваш вопрос, вы можете пометить ответ как правильный, просто сказав (@Conan).
вы передаете undefined как элементы, возможно, вам нужно проверить переменную docs
Просто... сделай то, что ты уже сказал? Если вам не нужны какие-либо фреймворки или механизмы рендеринга и т. д., то (а) почему вы показываете файл .pug (который является шаблоном, требующим механизма рендеринга pug) и (б) просто генерируете простой текстовый HTML и отправляете это как ответ?