使用内置的 Bun.serveAPI 编写一个简单的 HTTP 服务器。首先,创建一个新目录。
mkdir quickstart
cd quickstart
运行 bun init 以搭建新项目的基架。它是一个交互式工具;在本教程中,只需按enter
键即可接受每个提示的默认答案。
$bun init
bun init helps you get started with a minimal project and tries to
guess sensible defaults. Press ^C anytime to quit.
package name (quickstart):
entry point (index.ts):
Done! A package.json file was saved in the current directory.
+ index.ts
+ .gitignore
+ tsconfig.json (for editor auto-complete)
+ README.md
To get started, run:
bun run index.ts
于我们的入口点是一个 *.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 http://localhost:${server.port} ...`);
从 shell 中运行文件。
$bun index.ts
Listening on http://localhost:3000 ...
访问 http://localhost:3000 以测试服务器。您应该看到一个简单的页面,上面写着“Bun!”。
运行脚本
Bun 还可以从您的package.json
执行"scripts"
”。添加以下脚本:
{
"name": "quickstart",
"module": "index.ts",
"type": "module",
"scripts": {
"start": "bun run index.ts"
},
"devDependencies": {
"@types/bun": "^1.0.0"
}
}
然后使用bun run start
运行它。
$bun run start
$ bun run index.ts
Listening on http://localhost:3000 ...
性能—bun run
run 大约比npm run
快 28 倍(6 毫秒对 170 毫秒的开销)。
安装软件包
让我们通过安装一个软件包来使我们的服务器更有趣一些。首先安装figlet
包及其类型声明。Figlet 是用于将字符串转换为 ASCII 艺术的实用程序。
bun add figlet
bun 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 艺术横幅。
____ _
| __ ) _ _ _ __ | |
| _ \| | | | '_ \| |
| |_) | |_| | | | |_|
|____/ \__,_|_| |_(_)