Вдохновленный ответом @jakemingolla, предложившего async-await, я начал использовать callback для возврата объекта 'Categories', и все работало отлично.
функция в моем файле dbconfig.js
const getCategoryList = (callback) => {
CategoryRef.find().then((categories) => {
callback(categories);
})
}
, вызывающая функцию в моем файле app.js
app.get('/', (req, res) => {
database.getCategoryHomeList((categories) => {
res.render('home', {categories: categories});
})
});
Нет это не делает.
James Bennett ответил подобный вопрос некоторое время назад, относительно встроенных помощников JavaScript направляющих.
действительно маловероятно, что у Django когда-либо будет функциональность 'помощника' встроенной. Причина, если я понимаю правильно, имеет отношение к базовой философии Django хранения вещей , слабо связал . Наличие такой встроенной функциональности помощника приводит к связи Django с определенной библиотекой JavaScript или (в Вашем случае) тип документа HTML.
EG. Что происходит, если/когда HTML 5 наконец реализован, и Django генерирует HTML 4 или разметку XHTML?
Однако шаблонная платформа Django действительно гибка, и это не было бы ужасно трудно к , пишут Ваши собственные теги/фильтры , который сделал то, что Вы хотели. Я - главным образом разработчик сам, и я был в состоянии соединить пару пользовательских тегов, которые работали как очарование.
не похоже, что они встроены, но вот пара фрагментов. похоже, было бы довольно легко создать этих помощников:
Здесь список всех тегов шаблона и фильтрует встроенный в Django. Ядро Django не имеет такого же количества помощников HTML как направляющие, потому что участники Django предположили, что веб-разработчик знает HTML очень хорошо. Как указано saturdaypalace, это очень маловероятно для помощников Ajax быть добавленным к Django, потому что это привело бы к связи Django с определенной библиотекой JavaScript.
Это очень легко к , пишут Ваши собственные теги шаблона в Django (часто, необходимо только определить одну функцию, similiar к направляющим). Вы могли повторно реализовать большинство помощников направляющих в Django в течение дня или два.
Бьюсь об заклад, если бы было какое-либо согласие с тем, что является распространенным html , также был бы модуль помощников, просто для полноты (или потому, что у других это есть). ;)
Кроме этого, система шаблонов Django предназначена в основном для людей HTML, которые уже знают, как писать теги p
, img
и a
и не нуждаются в помощниках для этого. С другой стороны, есть разработчики Python, которые пишут код и не заботятся о том, что переменная, которую они помещают в контекст, заключена в div
или span
(прекрасный пример парадигмы разделения интересов ). Если вам нужно объединить эти два мира, вы должны сделать это самостоятельно (или искать код другого).
Это не ответит непосредственно на вопрос, но почему не использование <a href="{% url mapper.views.foo %}">foo</a>
в шаблоне тогда?
Назначение помощников не в том, как подразумевают здесь другие, помочь разработчикам, которые не знают, как писать HTML. Цель состоит в том, чтобы инкапсулировать общие функции - чтобы вам не нужно было писать одно и то же тысячу раз - и предоставить единое место для редактирования общего HTML, используемого во всем вашем приложении.
По той же причине шаблоны и SSI полезны - не потому, что люди не умеют писать HTML в своих верхних и нижних колонтитулах, но иногда вы хотите написать его только один раз.
EG. Что произойдет, если / когда HTML 5 наконец реализован, и Django создание разметки HTML 4 или XHTML?
То же самое, что происходит, когда реализован HTML 5, и все ваши шаблоны написаны на повторяющемся HTML, только намного проще.
В других сообщениях уже есть ответы на вопрос, ссылки на документы на пользовательских тегах шаблона ; вы можете использовать теги и фильтры для создания собственных, но нет, они не встроены.