Moj*_*ili 1 angular-universal angular angular-ssr
Angular 17中引入了SSR的新方法。现在我如何更改Angular组件中快速响应的状态代码?之前我改变了这样的响应:
import { RESPONSE } from '@nguniversal/express-engine/tokens';
import { Response } from 'express';
constructor(@Optional() @Inject(RESPONSE) private response: Response)
this.response.status(this.statusCode);
Run Code Online (Sandbox Code Playgroud)
这样我就可以更改状态代码。例如,如果我遇到未找到的组件,出于 SEO 原因,我必须将状态代码更改为 404。
令牌不再由 导出@angular/ssr。
迁移原理图当前所做的就是创建它们:
import { InjectionToken } from '@angular/core';
import { Request, Response } from 'express';
export const REQUEST = new InjectionToken<Request>('REQUEST');
export const RESPONSE = new InjectionToken<Response>('RESPONSE');
Run Code Online (Sandbox Code Playgroud)
您需要提供它们:它可能看起来像这样:
export function app(): express.Express {
documentFilePath: indexHtml,
url: `${protocol}://${headers.host}${originalUrl}`,
publicPath: distFolder,
providers: [
{ provide: APP_BASE_HREF, useValue: baseUrl },
{ provide: RESPONSE, useValue: res },
{ provide: REQUEST, useValue: req })
],
}
Run Code Online (Sandbox Code Playgroud)
这是介绍原理图改进的PR
另请注意,ng serve不使用server.ts(它不使用express。推荐的方法将设置的标记server.ts视为可选。
| 归档时间: |
|
| 查看次数: |
1070 次 |
| 最近记录: |