Appearance
快速开始
在本教程中,我们将学习如何使用 Bun 的内置 API 创建一个简单的 HTTP 服务器。即使你是编程新手,也能轻松跟随本教程完成!
准备工作
首先,让我们创建一个新的项目目录:
bash
mkdir quickstart
cd quickstart
这两个命令会创建一个名为quickstart
的文件夹,并进入该文件夹。
初始化项目
接下来,我们使用bun init
命令来搭建一个新项目。这是一个交互式工具,你只需按下Enter
键接受每个提示的默认答案即可。
bash
bun init
执行后,你会看到类似下面的输出:
txt
bun init帮助你从最小项目开始,并尝试猜测合理的默认值。
随时按^C退出。
包名称 (quickstart):
入口点 (index.ts):
完成!package.json文件已保存在当前目录。
+ index.ts
+ .gitignore
+ tsconfig.json (用于编辑器自动完成)
+ README.md
开始使用,请运行:
bun run index.ts
由于我们的入口点是一个.ts
文件,Bun 会自动为我们生成tsconfig.json
文件。如果你使用普通的 JavaScript,它会生成jsconfig.json
。
运行一个文件
现在,打开index.ts
文件,并粘贴以下代码段,这段代码使用Bun.serve
实现了一个简单的 HTTP 服务器:
typescript
const server = Bun.serve({
port: 3000,
fetch(req) {
return new Response("Bun!");
},
});
console.log(`正在监听 http://localhost:${server.port} ...`);
代码解析:
Bun.serve
- Bun 提供的创建 HTTP 服务器的 APIport: 3000
- 设置服务器监听的端口号fetch(req)
- 处理每个 HTTP 请求的函数return new Response("Bun!")
- 返回一个简单的文本响应
> **遇到 TypeScript 错误?**
如果你是通过bun init
创建的项目,Bun 应该已经自动安装了 TypeScript 声明文件并配置了tsconfig.json
。
如果在现有项目中尝试 Bun,你可能会在Bun
全局变量上看到类型错误。
解决方法:
- 安装
@types/bun
作为开发依赖:bun add -d @types/bun
- 在
tsconfig.json
的compilerOptions
中添加必要的配置
从命令行运行文件
在终端中运行以下命令来启动服务器:
bash
bun index.ts
执行后,你会看到输出:
正在监听 http://localhost:3000 ...
在浏览器中访问http://localhost:3000测试服务器。你应该能看到一个显示"Bun!"的简单页面。
通过脚本运行
Bun 也可以执行package.json
中的"scripts"
。让我们添加一个启动脚本:
json
{
"name": "quickstart",
"module": "index.ts",
"type": "module",
"scripts": {
"start": "bun run index.ts"
},
"devDependencies": {
"@types/bun": "latest"
}
}
然后通过bun run start
运行它:
bash
bun run start
输出:
$ bun run index.ts
正在监听 http://localhost:3000 ...
性能提示 ⚡️
bun run
比npm run
快约 28 倍(6 毫秒 vs 170 毫秒的开销)!
安装第三方包
让我们通过安装一个包来让我们的服务器更有趣。我们将使用figlet
包,它可以将文本转换为 ASCII 艺术字。
bash
bun add figlet
bun add -d @types/figlet # 仅TypeScript用户需要
然后更新index.ts
,在fetch
处理程序中使用figlet
:
typescript
import figlet from "figlet";
const server = Bun.serve({
port: 3000,
fetch(req) {
const body = figlet.textSync("Bun!");
return new Response(body);
},
});
console.log(`正在监听 http://localhost:${server.port} ...`);
重启服务器并刷新页面,你应该能看到一个新的 ASCII 艺术横幅:
____ _
| __ ) _ _ _ __ | |
| _ \| | | | '_ \| |
| |_) | |_| | | | |_|
|____/ \__,_|_| |_(_)
总结
恭喜!你已经成功:
- 创建了一个 Bun 项目
- 实现了一个基本的 HTTP 服务器
- 通过脚本运行应用
- 集成了第三方库
这只是 Bun 强大功能的冰山一角。随着你对 Bun 的深入学习,你会发现它还有许多其他令人惊叹的特性!