import { Response } from "https://dotland-vbqsvsrpfncg.deno-staging.dev/x/oak@v17.1.3/response.ts?s=Response";
An interface to control what response will be sent when the middleware finishes processing the request.
The response is usually accessed via the context's .response
property.
Example
import { Application, Status } from "jsr:@oak/oak/";
const app = new Application();
app.use((ctx) => {
ctx.response.body = { hello: "oak" };
ctx.response.type = "json";
ctx.response.status = Status.OK;
});
Properties
The body of the response. The body will be automatically processed when
the response is being sent and converted to a Uint8Array
or a
Deno.Reader
.
Automatic conversion to a Deno.Reader
occurs for async iterables.
The HTTP status of the response. If this has not been explicitly set,
reading the value will return what would be the value of status if the
response were sent at this point in processing the middleware. If the body
has been set, the status will be 200 OK
. If a value for the body has
not been set yet, the status will be 404 Not Found
.
The media type, or extension of the response. Setting this value will
ensure an appropriate Content-Type
header is added to the response.
A read-only property which determines if the response is writable or not.
Once the response has been processed, this value is set to false
.
Methods
Add a resource to the list of resources that will be closed when the request is destroyed.
Sets the response to redirect to the supplied url
.
If the .status
is not currently a redirect status, the status will be set
to 302 Found
.
The body will be set to a message indicating the redirection is occurring.
Sets the response to redirect back to the referrer if available, with an
optional alt
URL if there is no referrer header on the request. If there
is no referrer header, nor an alt
parameter, the redirect is set to /
.
If the .status
is not currently a redirect status, the status will be set
to 302 Found
.
The body will be set to a message indicating the redirection is occurring.
Instead of responding based on the values of the response, explicitly set
the response with a Fetch API Response
.
If the response is already finalized, this will throw. You can check
the .writable
property to determine the state if you are unsure.
[!NOTE] This will ignore/override values set in the response like the body, headers and status, meaning things like cookie management and automatic body typing will be ignored.
Instead of responding based on the values of the response, explicitly set
the response by providing the initialization to create a Fetch API
Response
.
If the response is already finalized, this will throw. You can check
the .writable
property to determine the state if you are unsure.
[!NOTE] This will ignore/override values set in the response like the body, headers and status, meaning things like cookie management and automatic body typing will be ignored.