Skip to content

快速入门

Vafast 是一个高性能、类型安全的 TypeScript Web 框架。内置 JIT 编译验证器、中间件预编译等优化技术,比 Express/Hono 快约 1.8x

Bun

Vafast 针对 Bun 进行了优化,Bun 是一种旨在作为 Node.js 的直接替代品的 JavaScript 运行时。

你可以使用下面的命令安装 Bun:

bash
curl -fsSL https://bun.sh/install | bash
bash
powershell -c "irm bun.sh/install.ps1 | iex"

自动安装

我们建议使用 bun create vafast 启动一个新的 Vafast 服务器,该命令会自动设置所有内容。

bash
bun create vafast my-app

完成后,你应该会在目录中看到名为 my-app 的文件夹。

bash
cd my-app

通过以下命令启动开发服务器:

bash
bun dev

访问 localhost:3000 应该会显示 "Hello Vafast"。

TIP

Vafast 提供了 dev 命令,能够在文件更改时自动重新加载你的服务器。

基础示例

简单路由

typescript
import { Server, defineRoutes, createHandler } from 'vafast'

const routes = defineRoutes([
  {
    method: 'GET',
    path: '/',
    handler: createHandler(() => 'Hello Vafast!')
  },
  {
    method: 'GET',
    path: '/users',
    handler: createHandler(() => ['user1', 'user2', 'user3'])
  }
])

const server = new Server(routes)
export default { fetch: server.fetch }

带参数的路由

typescript
const routes = defineRoutes([
  {
    method: 'GET',
    path: '/users/:id',
    handler: createHandler(({ params }) => {
      return `User ID: ${params.id}`
    })
  },
  {
    method: 'POST',
    path: '/users',
    handler: createHandler(async ({ body }) => {
      return { success: true, user: body }
    })
  }
])

使用 Schema 验证

typescript
import { Type } from '@sinclair/typebox'

const userSchema = Type.Object({
  name: Type.String({ minLength: 1 }),
  email: Type.String({ pattern: '^[^@]+@[^@]+\\.[^@]+$' }),
  age: Type.Optional(Type.Number({ minimum: 0 }))
})

const routes = defineRoutes([
  {
    method: 'POST',
    path: '/users',
    handler: createHandler(
      { body: userSchema },
      ({ body }) => {
        // body 已验证并自动推导类型
        return { success: true, user: body }
      }
    )
  }
])

下一步

现在你已经成功创建了一个 Vafast 应用!接下来你可以:

如果你遇到任何问题,请查看 故障排除 页面或加入我们的社区。