游乐游手机版
首页/AI热点日报/热点详情

Vibe Coding高级开发Prompt实战案例解析

类型:热点整理2026-07-19
通过配置 project-rules md规则文件,VibeCoding可快速生成Express服务骨架。生成后,需手动补全multer文件大小限制、预校验中间件、字段白名单及Jest单元测试,以保障生产环境的健壮性与安全性。

在项目交付时间紧张的情况下,Vibe Coding 确实能帮助你快速搭建一个内部数据工具。但先别急着上手,必须提前定好规矩——配置好 .project-rules.md 文件,明确技术栈和目录结构。然后通过 Cursor 按规则生成 Express 服务代码,中间有几个需要人工补丁的关键点:比如 multer 的文件大小限制要手动添加,最后还要补上预校验中间件、字段白名单以及 Jest 单元测试,这样才能确保生产环境稳定运行,避免意外问题。

Vibe Coding高级开发Prompt实战案例解析

利用Vibe Coding快速构建可交付的内部工具

假设你需要在 4 小时内交付一个部门级数据处理工具,支持 Excel 导入、字段映射、自动去重,最后导出清洗后的 CSV。说实话,如果从头手写路由、解析逻辑和前端交互,4 小时肯定不够。这时 Vibe Coding 就是最直接的解法——不过有一个前提:工程基线必须提前就位,否则 AI 生成的代码可能连本地启动都会报错。

第一步:在空文件夹中创建 .project-rules.md 文件,粘贴以下内容(必须严格使用此格式,AI 会逐行读取校验):

# 项目全局开发规范
技术栈: Node.js 20 + Express 4.18 + multer + xlsx + csv-writer
目录规则: /src/routes /src/utils /src/middleware /public/uploads /public/exports
响应格式: { code: 200, data: {}, msg: "" }
错误码规则: 400→参数缺失,500→解析失败,413→文件超限(10MB)
禁止功能: 不得连接数据库、不得调用外部API、不得生成HTML页面

第二步:打开 Cursor → 新建 Chat → 输入以下 Prompt(注意保留换行与缩进,这是触发结构化理解的关键):

“按照 .project-rules.md 规范,用 Express 实现一个单接口服务:POST /api/clean-csv。接收 multipart/form-data 格式上传的 Excel 文件(.xlsx/.xls),读取首张表,自动识别表头为字段名,对‘手机号’‘邮箱’两列执行去重+基础格式校验(手机号11位纯数字、邮箱含@且有域名),将清洗后数据写入 CSV 并返回下载链接。所有中间错误必须捕获并返回标准 error 响应。”

第三步:等待 AI 生成完整代码后,不要直接运行——先检查 【/src/routes/cleanCsvRoute.js 中是否包含 multer 配置且 limits.fileSize = 10 * 1024 * 1024】,若缺失,手动补全,否则上传大文件时会直接返回 413 错误且无提示。

第四步:终端执行 npm installnode src/server.js → 用 Postman 发送含 Excel 的 POST 请求,验证响应结构与 CSV 下载行为。

修复Vibe Coding生成代码中的典型缺陷

AI 生成的代码有一个通病:边界情况常常掉链子。比如空文件不报错、重复字段名直接崩溃、特殊字符导致 CSV 格式错乱。这其实不是 Prompt 写得不好,而是缺少人工兜底校验层。

方法一:插入预校验中间件

/src/middleware/fileValidation.js 中新建文件,写入:

const validateExcel = (req, res, next) => {
  if (!req.files || Object.keys(req.files).length === 0) {
    return res.status(400).json({ code: 400, msg: '未上传文件' });
  }
  const file = req.files.file;
  if (!file.mimetype.includes('excel')) {
    return res.status(400).json({ code: 400, msg: '仅支持 .xlsx 或 .xls' });
  }
  if (file.size > 10 * 1024 * 1024) {
    return res.status(413).json({ code: 413, msg: '文件超过10MB' });
  }
  next();
};
module.exports = { validateExcel };

方法二:强制字段白名单校验

/src/utils/excelProcessor.js 的解析逻辑前插入:

const requiredFields = ['手机号', '邮箱'];
const headers = worksheet['!ref'] ? XLSX.utils.sheet_to_json(worksheet, { header: 1 })[0] : [];
if (!requiredFields.every(f => headers.includes(f))) {
  throw new Error(`缺少必需字段:${requiredFields.filter(f => !headers.includes(f)).join(', ')}`);
}

这两段代码直接复制进对应文件就能生效。但缺少它们,测试人员随便传一个没有表头的 Excel,服务端就会直接抛出未捕获异常。

让Vibe Coding输出带单元测试的代码

多数开发者忽略的一点:没有测试的 Vibe Coding 产出等于不可迭代的代码。AI 默认不生成测试,必须用强约束指令撬动。

步骤一:在 .project-rules.md 底部追加测试规范条款

测试要求: 所有路由必须配套 Jest 测试用例,覆盖正常流程、空文件、非法格式、超限大小四类场景;测试文件与路由同名,置于 /tests/routes/ 目录下;断言必须包含 status、code、data 结构校验。

步骤二:向 Cursor Chat 补充指令

“除原需求外,同步生成 /tests/routes/cleanCsvRoute.test.js,用 Jest 模拟上传三种文件:1)合法 Excel;2)空 Excel;3).txt 伪装文件;每个测试必须 assert response.status 和 response.body.code。”

步骤三:执行 npm test,确认四条测试全部通过

若出现 【TypeError: Cannot read properties of undefined (reading '0')】,说明 AI 未处理空工作表,需在 excelProcessor.js 中补充 if (!worksheet || !worksheet['!ref']) throw new Error('工作表为空');

来源:https://www.php.cn/faq/2620627.html?uid=1431639

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。