Объект Express
Response
предоставляется только тогда, когда ваш код выполняется на стороне сервера во время предварительного рендеринга, но не после того, как выполнение на стороне клиента вступает во владение. Следовательно, ошибка, которую вы получили в вашем bwoser (clident-side)
Вы можете напрямую добавить ответ в конструктор, если указать его как Optional
import {Optional} from '@angular/core';
constructor(@Inject(PLATFORM_ID) private platformId: Object,
@Inject(RESPONSE) private response: Response)
{
//Here response will be null on client side, and contain Express Response instance on server side
}
Или, если вы хотите использовать экземпляр Injector
напрямую (не знаю, зачем вам это нужно, если только у вас нет проблемы с циклической зависимостью), вам нужно сделать это только на стороне клиента
import {isPlatformServer} from '@angular/common';
ngOnInit()
{
if(isPlatformServer(this.platformId))//Only executes server side
{
const response = this.injector.get(RESPONSE) as Response;
response.status(404);
}
}