Могу ли я рендерить html в экспрессе без использования res.render / возврата информации пользователю? - PullRequest
0 голосов
/ 14 мая 2019

Я хочу отображать HTML так же, как и большинство других страниц, с помощью res.render (), который настроен на использование рулей.

Но я не хочу просто возвращать HTML, я хочу поместить HTML в объект вместе с некоторой другой информацией, а затем вернуть это.

Я знаю, что могу загрузить новый экземпляр руля, но я не хочу этого делать, так как мне нужны все помощники и частичные функции. Есть ли способ визуализации с использованием того же экземпляра руля, который использует res.render, но просто возвращает мне HTML?

Я хочу сделать что-то вроде этого:

router.get('/list', function(req, res, next) {
  Users((err, users)=>{
    if (err) console.log(err);

    var html = res.render('user-list', {
        layout: false,
        users: users,
    });

    res.json({
        html: html,
        otherInfo: otherInfo
    });
  });
});'

Но, очевидно, не может этого сделать, потому что res.render начнет отправлять HTML пользователю.

Какие-нибудь советы?

edit: разобрался, просто не могу принять мой собственный ответ

1 Ответ

0 голосов
/ 14 мая 2019

Используйте req.app для доступа к экземпляру Express, который имеет метод render , который будет возвращать HTML. Функция асинхронная, поэтому вам нужно будет предоставить обратный вызов, а не устанавливать его в качестве переменной.

app.render () документы

...