如何将 Angular 16 SSR 中的 ngExpressEngine 迁移到 Angular 17

问题描述 投票:0回答:1

我正在从我的 Angular 16(现在是 Angular 17)server.ts 文件中挑选出确切相关的代码。

import { ngExpressEngine } from '@nguniversal/express-engine';


server.engine(
    'html',
  ngExpressEngine({
    bootstrap: AppServerModule,
  })
);

Angular 17 不再具有 ngExpressEngine,并且用 Angular/ssr 中的新 CommonEngine 替换不起作用。

如果有人知道如何正确迁移,我愿意接受建议。谢谢你

angular migration
1个回答
0
投票

我能够使用这里的语法来解决。只需将我的问题中的代码替换为此处的代码即可

server.get('*', (req, res, next) => {
    const { protocol, originalUrl, baseUrl, headers } = req;
    commonEngine
      .render({
        bootstrap: AppServerModule,
        documentFilePath: indexHtml,
        url: `${protocol}://${headers.host}${originalUrl}`,
        publicPath: distFolder,
        providers: [{ provide: APP_BASE_HREF, useValue: req.baseUrl }],
      })
      .then((html) => res.send(html))
      .catch((err) => next(err));
  });
© www.soinside.com 2019 - 2024. All rights reserved.