Express app.locals возвращает неопределенное значение при отправке с помощью res.send - PullRequest
0 голосов
/ 23 мая 2018

Я открываю lodash для каждого шаблона через app.locals

app.locals._ = _;

Все отлично работает при первоначальном запросе, когда я отправляю такой шаблон

res.render(template)

Но когда я хочу обновитьтолько часть страницы и попробуйте отправить шаблон следующим образом

res.send(pug.renderFile(template))

lodash возвращает неопределенное значение

как я могу решить эту проблему?

спасибо заранее.

1 Ответ

0 голосов
/ 23 мая 2018

res.render не является просто псевдонимом для pug.renderFile, он обрабатывает внедрение app.locals и некоторых других битов.Если вы хотите выполнить рендеринг pug вручную, вам нужно будет вручную добавить app.locals, однако pug это обрабатывает.

В этом случае pug.renderFile должен принять второй параметр, который используется какобъект locals, поэтому, если вы сделаете что-то вроде res.send(pug.renderFile(template, app.locals));, то сможете добиться того, чтобы ваши местные жители вставляли шаблон мопса вручную по желанию.

Edit: Как указано вВ комментариях Асафа Авива app.locals автоматически присваивается каждому объекту запроса, поэтому вы также можете получить к нему доступ из req.app.locals.

...