Skip to content

快速开始

在本教程中,我们将学习如何使用 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 服务器的 API
  • port: 3000 - 设置服务器监听的端口号
  • fetch(req) - 处理每个 HTTP 请求的函数
  • return new Response("Bun!") - 返回一个简单的文本响应

> **遇到 TypeScript 错误?**

如果你是通过bun init创建的项目,Bun 应该已经自动安装了 TypeScript 声明文件并配置了tsconfig.json

如果在现有项目中尝试 Bun,你可能会在Bun全局变量上看到类型错误。

解决方法:

  1. 安装@types/bun作为开发依赖:bun add -d @types/bun
  2. tsconfig.jsoncompilerOptions中添加必要的配置

从命令行运行文件

在终端中运行以下命令来启动服务器:

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 runnpm 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 艺术横幅:

  ____              _
 | __ ) _   _ _ __ | |
 |  _ \| | | | '_ \| |
 | |_) | |_| | | | |_|
 |____/ \__,_|_| |_(_)

总结

恭喜!你已经成功:

  1. 创建了一个 Bun 项目
  2. 实现了一个基本的 HTTP 服务器
  3. 通过脚本运行应用
  4. 集成了第三方库

这只是 Bun 强大功能的冰山一角。随着你对 Bun 的深入学习,你会发现它还有许多其他令人惊叹的特性!