Bun 快速入门

使用内置的 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 runrun 大约比 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 艺术横幅。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值