news 2026/9/29 8:40:11

【AI进化论】不写一行代码生成前后端分离项目:Cursor + Sealos 从 prompt 到发布全流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【AI进化论】不写一行代码生成前后端分离项目:Cursor + Sealos 从 prompt 到发布全流程

1. 从一句 prompt 到线上可访问:这套链路到底解决了什么

如果你写过前后端分离项目,大概率经历过这种节奏:先想清楚接口,再建目录、装依赖、配数据库、调跨域、改端口、写部署脚本,最后还要把服务挂到公网。每一步都不难,但串起来就是半天起步。Cursor 这类 AI 编程工具的价值,是把「写代码」这一段压缩成「描述需求 + 接受改动」,而 Sealos 这类云操作系统的价值,是把「跑起来 + 发出去」这一段压缩成「点几下 + 填个端口」。

这篇要做的,是一个 Todo List:后端 Node.js + Express + MongoDB,提供四个 RESTful 接口;前端 Vue 3 + Vite,带亮暗模式和过滤显示;数据库用 Sealos 里的 MongoDB;前后端各自跑在 Sealos 的 Devbox 里,最后发版拿到公网地址,前端对接后端接口,整条链路跑通。全程你不需要手写业务代码,但需要你准确地把「环境信息」和「接口契约」喂给模型——这也是零代码生成项目最容易翻车的地方。

适合谁看:会一点命令行、能看懂 JSON、但不想从零搭骨架的人;或者你已经会用 Cursor,但每次部署都要重新查文档,想把流程固定下来。下面按「先备好环境 → 再生成后端 → 再生成前端 → 对接 → 发布 → 排错」的顺序走,每一步都给可复制的 prompt 和命令。

2. 前置准备:Sealos 里把数据库和两个 Devbox 建好

2.1 创建 MongoDB 并记下连接信息

登录 Sealos 控制台后,在应用管理里创建一个 MongoDB 实例。创建完成后,你会拿到一组连接信息,形如:

主机:test-db-mongodb.svc 用户名:root 密码:rm6pn7tc

注意这里的test-db-mongodb.svc是集群内部的服务名,Devbox 之间通过它互访,不需要公网地址。密码以你实际创建的为准,后面 prompt 里要替换。数据库名可以先用默认的test,集合名用list。

提示:MongoDB 的连接串在代码里通常写成mongodb://root:密码@test-db-mongodb.svc:27017/test?authSource=admin。如果连不上,优先检查authSource和端口。

2.2 创建后端 Devbox

在 Sealos 里新建一个 Devbox,运行环境选 Node.js。创建时注意两点:一是暴露端口,后端我们统一用3000;二是记下这个 Devbox 的名称,后面发版会用到。Devbox 本质是一个带公网访问能力的开发容器,你在里面跑node app.js,外部就能通过它分配的公网地址访问。

2.3 创建前端 Devbox

同样新建一个 Devbox,环境选 Node.js,暴露端口用5173(Vite 默认端口)。前端 Devbox 和后端 Devbox 是独立的,互不干扰。两个 Devbox 都创建好之后,分别打开它们的终端,确认node -v和npm -v能正常输出。

2.4 把 Cursor 连到 Devbox

Cursor 本身是本地编辑器,要操作 Devbox 里的文件,最省事的方式是用 Cursor 的远程开发能力连上去,或者直接在 Devbox 终端里用命令行创建项目、再用 Cursor 打开对应目录。无论哪种方式,核心是:Cursor 里看到的目录,就是 Devbox 里的项目根目录。后端项目根目录已经npm init过,前端项目根目录已经初始化好 Vue 3 结构,这样模型才能「直接修改」而不是「从零创建」。

3. 后端生成:用 prompt 把接口契约写死

3.1 后端 prompt 模板(可直接复制)

把下面这段整体丢进 Cursor 的 Composer(或 Chat 的编辑模式),注意替换数据库连接信息:

请为我开发一个基于 Node.js 和 Express 框架的 Todo List 后端项目。 项目需要实现以下四个 RESTful API 接口: 1. 查询所有待办事项 - 接口名: GET /api/get-todo - 功能: 从数据库的 'list' 集合中查询并返回所有待办事项 - 返回: 包含所有待办事项的数组 2. 添加新的待办事项 - 接口名: POST /api/add-todo - 参数: { "value": string, "isCompleted": boolean } - 返回: 新添加的待办事项对象,包含自动生成的唯一 id 3. 更新待办事项状态 - 接口名: POST /api/update-todo/:id - 功能: 根据 id 更新指定待办事项的完成状态(isCompleted 取反) - 返回: 更新后的待办事项对象 4. 删除待办事项 - 接口名: POST /api/del-todo/:id - 返回: 删除操作的结果状态 技术要求: 1. 使用 Express 框架构建 API 2. 使用 MongoDB 作为数据库,通过 Mongoose 进行数据操作 3. 实现适当的错误处理和输入验证 4. 使用 async/await 语法处理异步操作 5. 遵循 RESTful API 设计原则 6. 添加基本的日志记录功能 数据库连接方式: 主机:test-db-mongodb.svc 用户名:root 密码:rm6pn7tc 数据库名:test 集合名:list 约束: 1. 直接以当前目录作为项目根目录,此目录已经初始化完 Node.js 项目,直接修改即可 2. 如果需要执行命令,请暂停创建文件,让我先执行命令 3. 为这个项目中的所有代码写上详细注释

这段 prompt 的关键在于「接口契约 + 环境信息 + 约束」三件套。接口契约写死了路径、方法、参数、返回,模型不会自由发挥;环境信息让模型直接生成可用的连接串;约束里的第 2 条尤其重要——它让模型在需要npm install时先停下来,避免它自作主张执行命令导致环境混乱。

3.2 执行与安装依赖

模型生成完文件后,按它提示的命令安装依赖:

npm install express mongoose morgan

然后启动:

node app.js

如果启动报错,把报错信息复制回 Composer,让它修复。常见的是端口占用或连接串格式问题。启动成功后,在 Sealos 后端 Devbox 里获取公网地址,形如https://xxxx.sealoshzh.site。

3.3 生成接口测试用例

拿到公网地址后,用下面这段 prompt 让模型生成测试用例:

@https://你的公网地址/ 这是我们的根地址,帮我们生成这四个接口的测试用例, 以及接口成功和不成功的返回值。

模型会输出一组 curl 命令,形如:

# 获取所有待办事项 curl -X GET https://你的公网地址/api/get-todo # 添加新待办事项 curl -X POST https://你的公网地址/api/add-todo \ -H "Content-Type: application/json" \ -d '{"value": "学习Node.js", "isCompleted": false}' # 更新待办事项状态 curl -X POST https://你的公网地址/api/update-todo/65f2e8b7c261e6001234abcd # 删除待办事项 curl -X POST https://你的公网地址/api/del-todo/65f2e8b7c261e6001234abcd

注意示例里的 ID 是占位符,实际测试时要先用get-todo拿到真实 ID 再替换。测试通过后,把接口文档保留下来,前端对接时直接复用。

4. 前端生成:Vue 3 + Vite 的 prompt 怎么写

4.1 前端 prompt 模板

前端 prompt 的重点是「功能清单 + UI 要求 + 约束」:

请为我开发一个基于 Vue 3 的 Todo List 应用。要求如下: 1. 功能需求: - 添加新的待办事项 - 标记待办事项为完成/未完成 - 删除待办事项 - 统计待办事项完成度 - 过滤显示(全部/已完成/未完成) 2. UI/UX 设计要求: - 全屏响应式设计,适配不同设备 - 拥有亮色模式和夜间模式 - 现代化、简洁的界面风格 - 丰富的色彩运用,但保持整体和谐 - 流畅的交互动画 - 在按钮和需要的地方添加上图标 约束: 1. 直接以当前目录作为项目根目录,此目录已经初始化完 Vue 3 项目结构,直接修改即可 2. 如果需要执行命令,请暂停创建文件,让我先执行命令 3. 请你根据我的需要,一步一步思考,给我开发这个项目,特别是 UI 部分一定要足够美观和现代化

模型会分步生成组件、样式和逻辑。中途它可能要求你安装依赖,按提示执行:

npm install @vueuse/core @heroicons/vue tailwindcss postcss autoprefixer

4.2 端口与启动配置

前端 Devbox 暴露的是5173,所以启动命令要带上 host:

npm run dev -- --host 0.0.0.0 --port 5173

更稳妥的做法是直接改package.json:

"scripts": { "dev": "vite --host 0.0.0.0 --port 5173", "build": "vite build", "preview": "vite preview" }

这样每次npm run dev都自动监听所有网卡,Sealos 才能把端口映射出去。启动成功后,前端 Devbox 也会分配一个公网地址。

5. 前后端对接:接口契约 + 跨域一次说清

5.1 用接口文档驱动对接

把后端生成的接口文档整体贴进 Cursor,让模型完成请求封装:

下面是这个 todolist 的四个接口,请完成接口对接的工作: 1. 获取所有待办事项 GET https://你的后端公网地址/api/get-todo 成功响应:{ "success": true, "data": [...] } 失败响应:{ "success": false, "error": "获取待办事项失败" } 2. 添加新的待办事项 POST https://你的后端公网地址/api/add-todo Content-Type: application/json 参数:{ "value": "学习Node.js", "isCompleted": false } 3. 更新待办事项状态 POST https://你的后端公网地址/api/update-todo/:id 4. 删除待办事项 POST https://你的后端公网地址/api/del-todo/:id

模型会生成api.js或类似的请求模块,把四个接口封装成函数,并在组件里调用。

5.2 跨域问题的处理

前后端在不同域名下,浏览器会拦截请求。最直接的方式是在后端加 CORS 中间件:

npm install cors

然后在app.js里:

const cors = require('cors'); app.use(cors());

如果只想放行特定来源,可以写成app.use(cors({ origin: 'https://你的前端公网地址' }))。改完后重启后端,前端刷新页面,请求应该就能通了。

5.3 前端请求 404 的排查

如果前端报 404,先确认三件事:一是请求的 baseURL 是不是后端公网地址;二是路径有没有多写或少写/api前缀;三是后端是否真的在跑。用 curl 直接打后端接口,能通说明后端没问题,问题在前端配置;不能通说明后端或端口映射有问题。

6. 发布上线:后端先发,前端后发

6.1 后端发版

在 Sealos 后端 Devbox 里点击发版,选择合适的服务器规格,确认版本号后上线。上线完成后,你会拿到一个稳定的公网地址。把这个地址提供给前端,作为接口 baseURL。

6.2 前端发版

前端发版前,先确认接口地址已经改成后端正式地址,保存后再发版。同样选择规格、确认版本号、上线。上线完成后访问前端公网地址,应该能看到完整的 Todo List 界面,添加、完成、删除、过滤都能正常工作。

6.3 验证清单

发布后按这个顺序验证:打开前端页面 → 添加一条待办 → 刷新页面确认数据还在(说明数据库写入成功)→ 标记完成 → 删除 → 切换过滤条件。全部通过,说明前后端和数据库三方都通了。

7. 本篇常见错误与排查

后端启动报 MongoServerSelectionError:多半是连接串里的主机名或authSource不对。Sealos 内部服务名要写全,密码不要带特殊字符未转义。

前端请求被 CORS 拦截:后端没加cors中间件,或origin配置写错。开发阶段可以先app.use(cors())全放行,上线前再收紧。

前端 404:baseURL 写成了相对路径,或者路径里少了/api。用浏览器开发者工具的 Network 面板看实际请求地址。

端口映射不生效:Devbox 暴露的端口和实际启动端口不一致。后端统一3000,前端统一5173,改完package.json后重启。

模型生成的代码跑不起来:把完整报错贴回 Composer,让它基于报错修复,不要自己猜。多数问题是依赖没装或版本不匹配。

如果你在接入过程中需要统一管理模型调用和密钥,可以看看 TaoToken 的 API Keys 页面,配合接入文档把请求地址和鉴权配好;想先验证模型输出效果,可以直接在模型对话里试;如果是长期做编码和 Agent 类任务,Coding Plan会更省心。官网入口在这里。

最后留一个我踩过的坑:模型生成的项目结构有时会把app.js和server.js混用,启动命令对不上。遇到这种情况,直接看package.json里的main字段和scripts,以它为准,别凭记忆敲命令。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 8:39:16

果冻效应原理与四步根治法:穿越机飞手必修课

1. 什么是果冻效应?它为什么让穿越机飞手集体皱眉果冻效应(Jello Effect)——这个词在FPV穿越机圈子里,几乎和“炸机”“丢图传”一样,是新手刚摸遥控器就可能撞上的第一道硬墙。它不是软件bug,不是信号干扰…

作者头像 李华
网站建设 2026/9/29 8:37:46

Cursor接入通义千问Qwen2.5的步骤:settings.json配置与连通性验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 8:35:52

基于拉丁矩形置乱与混沌映射的图像加密Matlab实现

图像加密这个方向,我陆陆续续做了小半年。以前总觉得加密是搞通信安全那帮人的事,直到自己动手用 Matlab 实现了一版“基于拉丁矩形置乱 混沌映射”的图像加密算法,才体会到里面的坑比想象中多得多。这篇文章不是论文复述,就是把…

作者头像 李华
网站建设 2026/9/29 8:34:45

Claude 金融 Skills 开源:用 TaoToken 统一 Key 跑通投研 Agent 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华