> ## Documentation Index
> Fetch the complete documentation index at: https://bun-1dd33a4e-farm-71122839-als-unhandled-rejection.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Build an HTTP server using Express and Bun

Express and other major Node.js HTTP libraries should work in Bun without changes. Bun implements the [`node:http`](https://nodejs.org/api/http.html) and [`node:https`](https://nodejs.org/api/https.html) modules that these libraries rely on.

<Note>See [Node.js compatibility](/runtime/nodejs-compat#node-http) for details.</Note>

```sh terminal icon="terminal" theme={"theme":{"light":"github-light","dark":"dracula"}}
bun add express
```

***

To define an HTTP route and start a server with Express:

```ts server.ts icon="https://mintcdn.com/bun-1dd33a4e-farm-71122839-als-unhandled-rejection/gXVECjd1uv0-p-Th/icons/typescript.svg?fit=max&auto=format&n=gXVECjd1uv0-p-Th&q=85&s=d30887ab03385c8da2c8f8d73d6e1ab7" theme={"theme":{"light":"github-light","dark":"dracula"}}
import express from "express";

const app = express();
const port = 8080;

app.get("/", (req, res) => {
  res.send("Hello World!");
});

app.listen(port, () => {
  console.log(`Listening on port ${port}...`);
});
```

***

To start the server on `localhost`:

```sh terminal icon="terminal" theme={"theme":{"light":"github-light","dark":"dracula"}}
bun server.ts
```
