# Type Alias: NodeHTTPHandlerOptions<TRouter, TRequest, TResponse>

> 

> **NodeHTTPHandlerOptions**\<`TRouter`, `TRequest`, `TResponse`\>: [`HTTPBaseHandlerOptions`](https://trpc.io/docs/typedoc/server/http/interfaces/HTTPBaseHandlerOptions.md)\<`TRouter`, `TRequest`\> & `object` & [`NodeHTTPCreateContextOption`](https://trpc.io/docs/typedoc/server/adapters/node-http/type-aliases/NodeHTTPCreateContextOption.md)\<`TRouter`, `TRequest`, `TResponse`\>

Defined in: [packages/server/src/adapters/node-http/types.ts:84](https://github.com/trpc/trpc/blob/7c907acfd8b31929214792e3b8c2ad7a8ac72563/packages/server/src/adapters/node-http/types.ts#L84)

The options of the Node.js adapters.

## Type declaration

### maxBodySize?

> `optional` **maxBodySize**: `number`

The largest request body, in bytes. A larger one gets a
`PAYLOAD_TOO_LARGE` error. It only applies to bodies tRPC reads from
the stream; if a body-parsing middleware sets `req.body`, limit the
size there.

### middleware?

> `optional` **middleware**: `ConnectMiddleware`\<`TRequest`, `TResponse`\>

A Connect-style middleware that runs before tRPC. tRPC doesn't answer
`OPTIONS` requests or set CORS headers, so use this for `cors()`.

#### Example

```ts
createHTTPServer({ middleware: cors(), router: appRouter });
```

#### See

https://trpc.io/docs/server/adapters/standalone#handling-cors--options

## Type Parameters

| Type Parameter |
| ------ |
| `TRouter` *extends* [`AnyTRPCRouter`](https://trpc.io/docs/typedoc/server/index/type-aliases/AnyTRPCRouter.md) |
| `TRequest` *extends* [`NodeHTTPRequest`](https://trpc.io/docs/typedoc/server/adapters/node-http/type-aliases/NodeHTTPRequest.md) |
| `TResponse` *extends* [`NodeHTTPResponse`](https://trpc.io/docs/typedoc/server/adapters/node-http/type-aliases/NodeHTTPResponse.md) |
