直接回答
Creght 的网站能做后端吗?能做到什么程度?
能。Func 是项目的后端代码入口,承载后端逻辑与 API 处理函数;数据表和用户系统是运行时资源,Func 读写它们。产品里内置了四类常见做法:创建登录功能、把表单提交保存到数据表、为数据表生成 CRUD 接口、要求登录后才能访问指定页面。登录支持邮箱密码与 Google、GitHub OAuth,收款有支付宝网站支付的完整教程,还可以接入 Resend 等第三方应用发信。
边界也说清楚:数据表是 JSON 表,不做 join、聚合、事务和模糊匹配,需要这些的系统应该用真数据库、由 Func 去调;用户目录的查询作用域是全项目,「谁能查谁」的门禁要自己写;Func 有按套餐区分的每日调用次数上限。
解决什么问题
静态页面撑不住的那些需求
官网做着做着就会遇到登录、预约、线索、会员这类需求。传统做法是另起一个后端项目,然后开始维护两套东西。
| 没有 Creght 时 | 在 Creght 里 |
|---|---|
| 要做登录?先起一个后端服务、建用户表、写会话。 | 用户系统是站点自带的运行时资源,AI 生成登录所需的代码与页面改动。 |
| 表单提交只能发邮件,数据散在收件箱里。 | Func 把提交内容写进数据表,之后能查能改。 |
| 想让某些页面只给会员看,得自己写中间件。 | 「保护页面」是内置做法,要求登录后才能访问。 |
| 收款要对接网关、处理回调、验签。 | 支付宝网站支付有完整教程,按同样模式可自接其他渠道。 |
怎么做到
后端面板里的东西
Func 是代码入口,数据表和用户是运行时资源
Func 承载项目的后端逻辑与 API 处理函数;数据表存 Func 读写的内容;用户系统管网站用户与登录状态;环境变量放服务端密钥。这四样在后端面板里一览无余,AI 负责把它们串到站点、接口和交互流程里。
/backend/func/booking.ts
export function create(input, ctx) {
const user = ctx.auth.requireUser()
return ctx.db.insert('appointments', {
startAt: input.startAt,
userId: user.id,
})
}页面里调用
await invoke('booking.create', input)平台能力都从 ctx 取:ctx.auth 拿当前用户,ctx.db 读写数据表。
四类常见做法是内置的
创建登录功能、把表单提交保存到数据表、为数据表生成 CRUD 接口、要求登录后才能访问指定页面——这四件事在面板里各是一个入口,点一下就让 AI 按你的项目生成对应代码和页面改动。
常见做法
登录支持邮箱与 OAuth
网站用户可以用邮箱密码注册登录,也支持 Google 与 GitHub OAuth。注意用户目录的查询作用域是整个项目,「谁能查谁」的权限门禁需要你自己在 Func 里写清楚。
登录
用户目录的查询作用域是全项目,权限门禁要自己在 Func 里写。
表单、发信、收款与第三方集成
表单提交可以入库;发信可接入 Resend 等第三方应用;收款有支付宝网站支付的完整教程,其他渠道按同样模式自接。数据表是 JSON 表,不做 join、聚合、事务和模糊匹配——需要这些的系统应该用真数据库,由 Func 去调。
appointments
3 条| name | phone | startAt |
|---|---|---|
| 林可 | 138****2043 | 2026-08-08 10:00 |
| 陈叙 | 159****7712 | 2026-08-08 14:30 |
| 周未 | 186****3388 | 2026-08-09 09:00 |
访客提交经 Func 落进数据表,之后能查能改。JSON 表不做 join、聚合、事务与模糊匹配。
