我们来使用内置的 Bun.serve API 编写一个简单的 HTTP 服务器。首先,创建一个新目录。
mkdir quickstartcd quickstart运行 bun init 来搭建一个新项目。它是一个交互式工具;对于本教程,只需按 enter 接受每个提示的默认答案。
bun init
? Select a project template - Press return to submit.
❯ Blank
React
Library
✓ Select a project template: Blank
+ .gitignore
+ index.ts
+ tsconfig.json (for editor autocomplete)
+ README.md
To get started, run:
bun run index.ts
bun install v1.3.0
+ @types/bun@1.3.0
+ typescript@5.9.2
7 packages installed由于我们的入口点是 *.ts 文件,Bun 会为您生成一个 tsconfig.json。如果您使用的是纯 JavaScript,它将生成一个 jsconfig.json。
运行文件
打开 index.ts 并粘贴以下代码片段,该片段实现了使用 Bun.serve 的简单 HTTP 服务器。
const server = Bun.serve({
port: 3000,
fetch(req) {
return new Response("Bun!");
},
});
console.log(`Listening on https://:${server.port} ...`);
在 Bun 上看到 TypeScript 错误?
从您的 shell 运行文件。
bun index.tsListening on https://:3000 ...访问 https://:3000 测试服务器。您应该会看到一个简单的页面显示“Bun!”。
运行脚本
Bun 还可以执行 package.json 中的 "scripts"。添加以下脚本
{
"name": "quickstart",
"module": "index.ts",
"type": "module",
"private": true,
"scripts": {
"start": "bun run index.ts"
},
"devDependencies": {
"@types/bun": "latest"
},
"peerDependencies": {
"typescript": "^5"
}
}然后使用 bun run start 运行它。
bun run start $ bun run index.ts
Listening on https://:3000 ...⚡️ 性能 — bun run 比 npm run 大约快 28 倍(开销为 6 毫秒 vs 170 毫秒)。
安装包
让我们通过安装一个包来使我们的服务器更有趣。首先安装 figlet 包及其类型声明。Figlet 是一个用于将字符串转换为 ASCII 艺术的工具。
bun add figletbun add -d @types/figlet # TypeScript users only更新 index.ts 以在 fetch 处理程序中使用 figlet。
import figlet from "figlet";
const server = Bun.serve({
port: 3000,
fetch(req) {
const body = figlet.textSync("Bun!");
return new Response(body);
return new Response("Bun!");
},
});重启服务器并刷新页面。您应该会看到一个新的 ASCII 艺术横幅。
____ _
| __ ) _ _ _ __ | |
| _ \| | | | '_ \| |
| |_) | |_| | | | |_|
|____/ \__,_|_| |_(_)