Позволяет формировать HTTP-ответ на запросы с сервера.

Конструктор опционально принимает код в виде числа или значение HttpStatusCode.

const resp1 = new HttpResponse(404);
const resp2 = new HttpResponse(HttpStatusCode.UNAUTHORIZED);

Методы можно выстраивать в цепочки. Все методы меняют сам объект ответа и возвращают его же.

const resp = new HttpResponse();
resp
    .status(201)
    .content('awesome')
    .json({content: 'created'})
    .cookie('sessionId', 'uniqueSessId')
    .location('https://example.com/path')
    .redirect('/same_url', 301)
    .set('Content-Type', 'text/html');
return resp;

Hierarchy

  • HttpResponse

Methods

content

  • content(data: string): this
  • Установить содержимое тела ответа строкой.

    Parameters

    • data: string

    Returns this

cookie

  • cookie(name: string, value: string, options?: CookieOptions): this
  • Установить значение cookie.

    Parameters

    Returns this

json

  • json(data: any): this
  • Установить тело ответа из объекта JSON.

    Обратите внимание, что при передаче ответа используется функция JSON.stringify, и при наличии циклических ссылок формирование ответа будет падать с ошибкой.

    Также данный метод устанавливает заголовок ответа Content-Type: application/json. Если необходимо, вы можете установить для него другое значение.

    return new HttpResponse(HttpStatusCode.CREATED)
        .json({content: 'created'})
        .set('Content-Type', 'text/javascript'); //Old IE now happy
    

    Вы можете передать в качестве data экземпляр объекта, в котором реализована функция json(), возвращающая объект состояния данного экземпляра.

    function MyClass() {};
    MyClass.prototype.json = function() {
      return { id: 1, value: 'string' }
    };
    
    const myData = new MyClass();
    const resp = new HttpResponse().json(myData);
    

    Parameters

    • data: any

    Returns this

location

  • location(url: string): this
  • Установить заголовок Location.

    Parameters

    • url: string

    Returns this

redirect

  • Сформировать перенаправление запроса. По умолчанию передается код 302.

    Parameters

    Returns this

set

  • set(name: string, value: string): this
  • Установить значение HTTP-заголовока.

    Parameters

    • name: string
    • value: string

    Returns this

setFile

  • setFile(file: FileItem, name?: undefined | string): this
  • Установить в тело ответа файл.

    Тело файла в методе скачивать не требуется. Оно будет передано в тело HTTP-ответа самой платформой.

    async function downloadFile(req: FetchRequest): Promise<HttpResponse | void> {
        const file = await System.files.search()
            .where(f => f.__id.eq("b57ef952-2861-45e1-9dd0-fa5e042ab4ef")).first();
    
        const resp = new HttpResponse();
        resp.setFile(file!);
    
        return resp;
    }
    

    Parameters

    • file: FileItem
    • Optional name: undefined | string

    Returns this

status

  • Установить код ответа.

    Parameters

    Returns this