Skip to main content

Http Request

The IScope interface that is passed to a controller method provides access to the incoming request data.

Input

Request body and query parameters

The request object provides access to the request body and query parameters.

export class UserController {
@Route({method: 'POST', path: '/users'})
store({request}: IScope) {
const {body, query} = request;
}
}

File uploads

If you need to allow file uploads on a specific route, pass multipart: true in the route options.

export class UserController {
@Route({method: 'POST', path: '/users', options: {multipart: true}})
store(scope: IScope) {
const avatar = scope.request.files?.avatar as unknown as IUploadedFile;
}
}

Request details

Request properties

The request object contains information about the incoming request, such as path, host, and method.

export class UserController {
@Route({method: 'POST', path: '/users'})
store({request}: IScope) {
const {path, host, method} = request;
}
}

Request parameters

You can access request parameters using the params property.

export class UserController {
@Route({method: 'GET', path: '/users/:id'})
show({request}: IScope) {
const {params} = request;
const userId = params.id;
}
}

Request headers

You can access request headers using the headers property.

export class UserController {
@Route({method: 'POST', path: '/users'})
store({request}: IScope) {
const {headers} = request;
const contentType = headers['content-type'];
}
}