Для обслуживания stati c файлов можно использовать this.static()
:
import path from 'path';
export class TodoListApplication extends BootMixin(
ServiceMixin(RepositoryMixin(RestApplication)),
) {
constructor(options: ApplicationConfig = {}) {
super(options);
// ...
this.static('/', path.join(__dirname, '../../public'));
}
}
Хотя LoopBack 4 действительно использует Express. js для повторного использования некоторых своих функций, он не раскрывает весь API в нормальных условиях.
Существуют некоторые привязки в RestBindings.Http
, которые можно использовать для внедрения Express. js RequestContext, Request или Response объекты в контроллер. Однако это следует рассматривать как последнее средство.
Если необходим доступ к этим привязкам, настоятельно рекомендуется внедрить их в контроллер, чтобы воспользоваться преимуществами управления жизненным циклом и загрузчиками в LoopBack 4:
// /src/controllers/redirect.controller.ts
import {inject} from '@loopback/context';
import {get, Response, RestBindings} from '@loopback/rest';
export class RedirectController {
constructor(@inject(RestBindings.Http.RESPONSE) private res: Response) {}
// Map to `GET /redirect`
@get('/redirect', {
responses: {
'302': {
description: 'Redirect Response',
},
},
})
redirect(): void {
this.res.setHeader('x-secret-sauce', 'Sugar, spice and everything nice.');
this.res.redirect('https://www.example.com/');
}
}
Приведенный выше фрагмент кода показывает, как установить заголовок ответа и вернуть перенаправление. Хотя можно использовать любые части 1036 *. js Response API .
Дополнительная информация: