真实操作案例软件开发与编程

项目脚手架生成:Tokeny 实操案例

为团队任务板创建无需网络安装的 Node.js 小项目:原生 HTTP 服务、静态前端、GET/POST /api/tasks、输入校验、内存存储和 node:test 测试;实际运行测试。

作者:Tokeny 团队 · Windows · Tokeny 1.7.8 · gpt-6-sol

准备这次任务的输入

在 Tokeny 中新建工作空间,将下载的样例解压到工作空间,选择支持工具调用的模型。本例使用合成演示数据或文中列出的公开资料。

  • requirements.md
下载输入样例

把任务交给 Tokeny

为团队任务板创建无需网络安装的 Node.js 小项目:原生 HTTP 服务、静态前端、GET/POST /api/tasks、输入校验、内存存储和 node:test 测试;实际运行测试。

交付文件:package.json、server.mjs、public/index.html、test.mjs。
验收要点:
- npm test 成功
- 说明内存存储边界
- 测试非法 JSON 与空标题
这是使用合成演示输入或指定公开资料的真实操作案例。请先读取工作空间输入,再实际生成文件并自检。所有写入、脚本与临时服务限于当前工作空间;临时服务只监听 127.0.0.1,执行后关闭;不触达外部收件人、不发布、不付款、不更改系统设置,不调用子智能体。需要公开资料时可读取给定 URL。只启用完成任务必需的工具。另写 report.md(中文)和 report.en.md(英文),简洁、完整,包含输入、处理步骤、真实结果、检查方式和局限;失败或未验证部分如实记录,不能宣称成功。最终回复用中文列出产物、关键结果与待核实项。
复核后追加的任务(1 次)
复核 server.mjs 发现静态文件路径检查仅用 filePath.startsWith(PUBLIC_DIR),会把 public-other 这类相邻目录误认为 public 内。请修复边界为目录本身或带分隔符的子路径,并增加真实 HTTP 回归测试:正常首页可访问、编码的 ../public-other/ 文件不能读取。测试临时文件只在本工作空间创建并清理,保留已有功能。更新双语报告,不要求固定字数。

本次使用独立演示工作空间。复现时,请根据自己的文件与权限设置检查操作,确认后继续。

实际执行过程

任务从 Tokeny 输入框提交,由在线模型读取资料并调用工具实际执行。本例核对本地演示任务与实际生成的文件,结果和检查方法见下文。

Tokeny 1.7.8 中「项目脚手架生成」的真实执行会话与生成文件。点击可查看原图。
Tokeny 1.7.8 中「项目脚手架生成」的真实执行会话与生成文件。点击可查看原图。
本次生成文件的实际预览;内容来自可下载的产物。
本次生成文件的实际预览;内容来自可下载的产物。
在真实浏览器中操作生成页面后的结果。
在真实浏览器中操作生成页面后的结果。

产物、结果与复核

输入

读取了 requirements.md:Node.js 22+;任务包含 id、title、done;标题长度 1–100;非法 JSON 返回 400;只监听 127.0.0.1;端口由 PORT 指定;关闭服务后数据不持久。读取了 ENVIRONMENT.md,确认本次为 Windows 独立演示目录。

处理步骤

  1. 生成 package.json,使用 Node 内置测试运行器,无网络依赖。
  2. 实现原生 HTTP 服务、静态文件服务、GET/POST /api/tasks、JSON 解析和输入校验。
  3. 添加内存任务存储:自动生成 UUID,默认 done: false。
  4. 添加静态前端和 node:test 测试,覆盖正常流程、非法 JSON、空标题、静态页面和编码路径越界。
  5. 修复静态目录边界:只允许 public 目录本身或带目录分隔符的子路径,避免误放行 public-other 等相邻目录。
  6. 测试期间在工作空间临时创建 public-other/secret.txt,通过真实 HTTP 请求验证编码的 ../public-other/secret.txt 返回 403,随后清理临时目录。
  7. 执行 npm test,并使用本机 127.0.0.1 临时端口验证接口与页面,结束后关闭服务。

真实结果

本次修复后实际执行 npm test:6 个测试全部通过,0 失败。覆盖初始空列表、创建并读取任务、非法 JSON 400、空标题 400、静态首页 200,以及编码路径访问相邻 public-other 文件时返回 403。首次回归尝试使用 fetch 时客户端先规范化了编码路径,得到 404;改用保留原始路径的 http.request 后验证通过。随后检查确认临时目录已清理。

检查方式

运行 npm test。手动运行可使用 PORT=3000 npm start(Git Bash)或在 Windows 中设置 PORT 后运行 npm start,访问 http://127.0.0.1:3000。

局限

任务只存于进程内存,服务关闭、进程崩溃或重启后数据会丢失;没有数据库、用户认证、并发持久化、任务编辑/删除或跨进程共享。前端当前只展示和新增任务,未提供完成状态切换。

下载产物,自己核对

压缩包保存本次执行生成的文件。替换成自己的资料后,可以按下面的检查点验收。

  • npm test 成功
  • 说明内存存储边界
  • 测试非法 JSON 与空标题
package.json · 1 KBserver.mjs · 4 KBpublic/index.html · 3 KBtest.mjs · 4 KBreport.md · 2 KBreport.en.md · 2 KB
下载本次实际产物

继续探索同类场景