我正在从我的 Angular 16(现在是 Angular 17)server.ts 文件中挑选出确切相关的代码。
import { ngExpressEngine } from '@nguniversal/express-engine';
server.engine(
'html',
ngExpressEngine({
bootstrap: AppServerModule,
})
);
Angular 17 不再具有 ngExpressEngine,并且用 Angular/ssr 中的新 CommonEngine 替换不起作用。
如果有人知道如何正确迁移,我愿意接受建议。谢谢你
我能够使用这里的语法来解决。只需将我的问题中的代码替换为此处的代码即可
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));
});