☰
用Cursor两小时开发了一套查八字的微信小程序,万字沉浸式教程都在这了,小白看了都能直接上手
2026/9/28 4:30:38 网站建设 项目流程

1. 从零到跑通:为什么我选 Cursor + uniapp + Java 这套组合

查八字这类小程序,核心链路其实很短:用户填阳历生日和时辰,前端把参数发给后端,后端调用大模型推理出农历、天干地支、五行缺啥、生肖,再把结构化结果回传渲染。功能不复杂,但麻雀虽小五脏俱全——有前端页面、有后端接口、有第三方大模型调用、还有微信小程序的域名和证书配置。对刚上手的朋友来说,这套流程正好能把「AI 辅助开发」的完整闭环走一遍。

我这次全程用 Cursor 当主力,前端用 uniapp 写(一套代码能编译到微信小程序),后端用 Java 搭骨架,模型推理走 DeepSeek 这类接口。关键点在于:别把大模型的 Key 硬编码在前端,也别在每个项目里重复写一套鉴权、重试、限流逻辑。我的做法是统一走 TaoToken 的 API 通道,一个 Key 管多个模型,配置集中、切换方便,后面想换模型只改一个配置文件就行。

这篇文章适合谁?如果你会一点点前端或 Java 基础,想跟着把一个小程序从空目录跑到本地联调成功,那这篇就是给你写的。如果你完全没写过代码,也能照着复制配置和提示词,把流程跑通,遇到报错就对照第 5 节的排查表。全程我会给出可复制的settings.json、config.toml、Cursor 提示词模板,以及本地启动和接口联调的验证动作。实测下来,把环境配好之后,主体开发时间能压得很短,真正花时间的是域名、证书这些收尾环节。

先说清楚整体架构,避免你后面迷路:

层技术职责
前端uniapp(Vue 语法)表单输入、结果展示、调用后端接口
后端Java(Spring Boot 风格)接收参数、组装 prompt、调用模型、返回结构化字段
模型通道TaoToken 统一 API统一 Key、统一入口,转发到 DeepSeek 等模型
运行环境微信开发者工具 + 本地服务调试、预览、联调

这个分层的好处是:前端只管展示,后端只管业务和模型调用,模型通道只管转发和鉴权。任何一层出问题,排查范围都很清晰。

2. 前置准备:TaoToken 统一 Key 与 API 通道配置

在写业务代码之前,先把「模型调用」这条链路打通,否则后面联调时你分不清是业务代码错了还是 Key 配错了。TaoToken 的作用简单说就是:你注册后拿到一个 API Key,通过它提供的统一入口去调用 DeepSeek 等模型,不用为每个模型单独申请、单独配 BaseURL。

第一步,拿到 Key。打开官网注册登录,进入控制台创建 API Key:

  • 官网入口:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
  • 控制台(创建和管理 Key):https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite
  • API Keys 管理页:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite

创建完 Key 后,把它存到环境变量里,别写进代码提交到仓库。我习惯在项目根目录放一个.env(记得加进.gitignore):

# .env 仅本地使用,切勿提交 TAOTOKEN_API_KEY=sk-你的Key粘贴在这里 TAOTOKEN_BASE_URL=https://taotoken.net/api

注意:https://taotoken.net/api是接口基地址,不要在后面手动拼/v1之类的路径,具体路径以接入文档为准,避免出现 404。

第二步,确认你要用的模型名。不同模型在请求体里的model字段不一样,DeepSeek 系列、通用对话模型各有各的写法。建议先看接入文档确认当前可用的模型标识:

  • 接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite

第三步,如果你打算长期用 Cursor 做编码、跑 Agent 任务,可以了解下 Coding Plan,它更适合高频编码场景,额度模型和按量调用不太一样:

  • Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite

想先在网页里验证模型通不通,可以直接用模型对话页发一句话试试:

  • 模型对话:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=chat&utm_campaign=rewrite

这一步做完,你手里应该有三样东西:一个可用的 Key、一个 BaseURL、一个确认可用的模型名。后面后端代码就围绕这三样来写。

3. 可复制配置:Cursor 的 settings.json 与后端 config.toml

配置是小白最容易卡住的地方,我直接把能用的片段贴出来,你按需改路径和模型名即可。

3.1 Cursor 的 settings.json

Cursor 基于 VS Code,配置文件在用户目录下的.cursor或通过设置界面打开 JSON。下面这份是我常用的精简版,重点是关掉一些干扰、开启保存格式化、配好 Java 和前端的基础提示:

{ "editor.formatOnSave": true, "editor.tabSize": 2, "files.autoSave": "afterDelay", "files.exclude": { "**/node_modules": true, "**/target": true, "**/.git": true }, "java.configuration.updateBuildConfiguration": "automatic", "java.compile.nullAnalysis.mode": "automatic", "editor.suggestSelection": "first", "terminal.integrated.defaultProfile.osx": "zsh", "terminal.integrated.defaultProfile.windows": "PowerShell" }

如果你在 Cursor 里配置模型通道做辅助编码,可以在 Cursor 的模型设置里填自定义 BaseURL 和 Key,把上面拿到的TAOTOKEN_BASE_URL和 Key 填进去。这样 Cursor 的对话和补全也能走统一通道,不用来回切账号。

3.2 后端 config.toml

Java 项目里我习惯用一个config.toml集中管理模型相关配置,读取后注入到 Service。这样换模型、换 Key 只改一个文件:

# src/main/resources/config.toml [model] # 统一走 TaoToken 通道 base_url = "https://taotoken.net/api" api_key = "${TAOTOKEN_API_KEY}" # 按接入文档确认后的模型标识填写 model_name = "deepseek-chat" timeout_seconds = 60 max_retries = 2 [app] # 后端服务端口 server_port = 8080 # 允许跨域的前端来源,本地调试可先放开 cors_origins = "*"

对应的 Java 读取逻辑(用简单的方式演示,实际项目可用配置库):

// ConfigLoader.java import com.moandjiezana.toml.Toml; import java.io.File; public class ConfigLoader { public static Toml load() { File f = new File("src/main/resources/config.toml"); return new Toml().read(f); } public static String apiKey() { // 优先读环境变量,避免 Key 落盘 String env = System.getenv("TAOTOKEN_API_KEY"); if (env != null && !env.isEmpty()) return env; return load().getString("model.api_key"); } }

注意:api_key那行写的是${TAOTOKEN_API_KEY}占位,真正取值时优先读环境变量。这样即使配置文件被误传,也不会泄露 Key。

3.3 Cursor 提示词模板

开发阶段我用的提示词模板,直接复制改改就能用。核心是先给上下文文件,再给明确约束:

@architecture.md @prd.md @prototype.html 请根据以上架构设计、需求文档和原型图开发代码。 约束: 1. 前端使用 uniapp,目录 bazi-frontend,页面按原型实现; 2. 后端使用 Java,目录 bazi-backend,遵守 REST 风格; 3. 后端只暴露一个计算接口 POST /api/bazi/calc,入参为阳历生日和时辰; 4. 模型调用统一走 config.toml 里的 base_url 和 api_key,不要硬编码; 5. 返回字段包含:农历日期、天干地支、五行、五行缺失、生肖。 先输出目录结构,我确认后再逐个文件生成。

这个模板的关键是「先输出目录结构,确认后再生成」。不然 Cursor 一口气生成几十个文件,改起来很痛苦。

4. 本地启动与接口联调:验证请求与成功结果

配置好了,接下来把前后端跑起来,验证整条链路。

4.1 启动后端

在bazi-backend目录下,先拉依赖再启动。以 Maven 为例:

cd bazi-backend mvn clean install -DskipTests mvn spring-boot:run

看到类似Tomcat started on port 8080就说明起来了。如果端口被占用,改config.toml里的server_port。

4.2 用 curl 验证接口

先别急着开小程序,用 curl 直接打后端接口,确认模型调用通不通:

curl -X POST http://localhost:8080/api/bazi/calc \ -H "Content-Type: application/json" \ -d '{ "birthDate": "1995-08-12", "birthHour": "辰时" }'

成功的话会返回类似结构:

{ "code": 0, "data": { "lunarDate": "一九九五年七月十八", "ganzhi": "乙亥年 甲申月 丙寅日", "wuxing": "木、火、土", "wuxingMissing": "金、水", "zodiac": "猪" } }

如果code不是 0,先看后端日志里的报错。常见的是 Key 没读到、模型名写错、或者网络超时。

4.3 启动前端并联调

在bazi-frontend目录:

cd bazi-frontend npm install npm run dev:mp-weixin

然后用微信开发者工具导入bazi-frontend/dist/dev/mp-weixin目录。导入后如果首页白屏,多半是编译产物路径不对,重新跑一次npm run dev:mp-weixin即可。

联调时重点看两件事:一是前端请求的地址是不是http://localhost:8080,二是开发者工具里「详情 - 本地设置」勾选「不校验合法域名」。本地调试阶段必须勾,否则请求会被拦。

在开发者工具的 Network 面板里,能看到/api/bazi/calc请求返回 200,且响应体里有上面那些字段,就说明前后端和模型通道全通了。

4.4 用模型对话页做对照验证

有时候你怀疑是后端组装 prompt 的问题,而不是通道问题。这时可以打开模型对话页,手动发一句类似的 prompt,看模型返回是否正常:

  • 模型对话:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=chat&utm_campaign=rewrite

如果网页里正常、后端不正常,那问题就在后端代码;如果两边都不正常,先检查 Key 和模型名。

5. 本篇常见错排查

这一节是我踩过的坑,按报错现象对照着查。

报错一:401 Unauthorized。九成是 Key 没读到或写错了。检查环境变量TAOTOKEN_API_KEY是否在当前终端生效,echo $TAOTOKEN_API_KEY看一下。如果是 IDE 里启动的,注意 IDE 可能没继承你 shell 里的环境变量,需要在启动配置里手动加。

报错二:404 Not Found。多半是 BaseURL 拼错了。记住基地址就是https://taotoken.net/api,不要在代码里再拼/v1/chat/completions这种完整路径,具体路径以接入文档为准。接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite

报错三:模型名无效。请求体里的model字段必须和文档里列出的标识完全一致,大小写、连字符都不能错。换模型时先改config.toml的model_name,重启后端再试。

报错四:请求超时。模型推理本身有耗时,尤其是长 prompt。把timeout_seconds调到 60 甚至 90,并确认后端用的是流式还是非流式。非流式会等全部生成完才返回,体感很慢,聊天类场景建议用流式。

报错五:跨域 CORS。本地调试时前端localhost:端口和后端localhost:8080不同源,浏览器会拦。开发阶段把cors_origins设为*,上线前再收紧到具体域名。

报错六:微信开发者工具请求被拦。本地调试勾选「不校验合法域名」。真机预览时必须用 HTTPS 域名,且在小程序后台配置服务器域名,注意只能配子域名,不能配顶级域名。

报错七:真机预览白屏或请求失败。检查后端服务是否部署到了有 HTTPS 证书的域名上,以及小程序后台的服务器域名是否配置正确。这一步是小白最容易卡住的地方,建议提前准备好域名和证书。

报错八:Cursor 生成的代码跑不起来。别慌,把完整报错贴回 Cursor,加上一句「这是运行报错,请定位原因并给出修改后的完整文件」。一次改不好就多轮对话,比你自己硬啃快得多。

6. 继续深入:把通道用顺,把项目跑稳

走到这里,你已经有了一个能本地跑通、能调模型、能返回结构化结果的查八字小程序骨架。剩下的就是把它打磨成能上线的样子:补备案、配 HTTPS、收紧跨域、加错误兜底。

如果你后面还要接更多模型、或者想让 Cursor 在编码时也走统一通道,建议把 Key 和通道配置固定下来,别每个项目重来一遍。需要新建 Key 或管理额度时,直接去 API Keys 页操作:

  • API Keys:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite

长期做编码和 Agent 任务的话,Coding Plan 会比按量调用更省心:

  • Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite

接入细节和参数说明都以文档为准,遇到不确定的字段先去翻一遍:

  • 接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite

我的建议是:先把本文第 3 节的配置原样复制跑通,再逐步替换成你自己的模型和页面。别一上来就大改,跑通再优化,出问题也好定位。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询