Я создаю небольшое приложение, в первую очередь с сокетом io, но с некоторыми вещами из expressjs.
Одной из функций сокета io является отправка электронного письма при наступлении определенного события. У меня это нормально работает с node_mailer.
Проблема, с которой я сталкиваюсь, заключается в том, что я хочу использовать механизм экспресс-просмотра для рендеринга электронных писем из файлов шаблонов. Кажется, что метод рендеринга явно привязан к прототипу объекта res.
То, что я сделал, кажется довольно грязным:
// setup express server
var render;
app.get('/', function (req, res) {
if (typeof render == 'undefined') render = res.render;
res.end('Welcome to app');
});
// socket io code
socket.on('event', function (data) {
var email_content;
render('template', {}, function (err, result) { email_content = result; });
});
Есть ли лучший способ получить доступ к компонентам expressjs вне контекста http-запроса или даже лучший способ решить эту проблему? Я попытался настроить вызов экспортированной функции express.view.compile, но это не сработало и выглядело как высокая