Можно ли добавить глобальный обратный вызов рендеринга для данного механизма шаблонов в Express? - PullRequest
0 голосов
/ 02 марта 2020

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

Есть ли способ использовать глобальный обратный вызов для этого механизма шаблонов?

import * as express from "express";
import * as cons from "consolidate";

export const server = express();
const engine = "pug";
server.engine(engine, cons[engine]);
server.set("view engine", engine);

const transformHtml = html => ...

server.get("/test", (req, res, next) => {
    res.render("test", (err, html) => {
        if (err) { throw err; }
        res.send(transformHtml(html));
    });
});

1 Ответ

1 голос
/ 03 марта 2020

вы можете переопределить функцию res.render

server.use((req, res, next) => {
  var oldRender = res.render;
  res.render = function (...) {
    //... custom code and can call the original res.render with oldRender(...)
  }
});
...