项目脚手架生成: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 输入框提交,由在线模型读取资料并调用工具实际执行。本例核对本地演示任务与实际生成的文件,结果和检查方法见下文。
产物、结果与复核
输入
读取了 requirements.md:Node.js 22+;任务包含 id、title、done;标题长度 1–100;非法 JSON 返回 400;只监听 127.0.0.1;端口由 PORT 指定;关闭服务后数据不持久。读取了 ENVIRONMENT.md,确认本次为 Windows 独立演示目录。
处理步骤
- 生成
package.json,使用 Node 内置测试运行器,无网络依赖。 - 实现原生 HTTP 服务、静态文件服务、
GET/POST /api/tasks、JSON 解析和输入校验。 - 添加内存任务存储:自动生成 UUID,默认
done: false。 - 添加静态前端和
node:test测试,覆盖正常流程、非法 JSON、空标题、静态页面和编码路径越界。 - 修复静态目录边界:只允许
public目录本身或带目录分隔符的子路径,避免误放行public-other等相邻目录。 - 测试期间在工作空间临时创建
public-other/secret.txt,通过真实 HTTP 请求验证编码的../public-other/secret.txt返回 403,随后清理临时目录。 - 执行
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 与空标题


