全部文章
工具笔记

让 AI 写启动配置校验:发现 10s 时就报错

一次解析环境变量,让业务模块接收明确类型。

资料核验2026.11.12 · Node.js · 小型服务与命令行工具

部署把超时写成 10s,代码用 Number 转换后拿到 NaN。直到一次请求卡住,问题才暴露。环境变量读入时是文本,端口、开关、时间都要经过业务自己的解析。

让助手从这一步开始

向助手提供变量名、允许值和单位。要求集中解析,并把配置对象交给业务模块。举例指定超时只接收整数毫秒,开关只接收 true 与 false,密钥提示只报变量名。

流程示意:读取字符串;校验单位和范围;启动或明确失败

先给每个值定格式

约定超时使用整数毫秒,限制在合理区间。开关只接受约定的文字值,因为字符串 false 仍是非空字符串。启动时统一解析,缺省和非法值分别处理。

把变量名和可接受的格式放在错误里。对凭据只报告缺失或格式错误,别打印值。测试未配置、合法值和写错单位三种启动路径。

解析后的配置由入口传给各模块。以后修改单位,只改一处就能核对全局行为。

把问题变成可重跑的样例

列一组启动输入 PORT=4321、TIMEOUT_MS=10s 和 FEATURE_ENABLED=false。保留默认启动和错误启动的命令记录。错误提示写明期望整数毫秒,把项目环境切回合法值后应能正常启动。

核对这几项输出

  • 缺失时使用约定默认值。
  • 10s 被识别为非法单位。
  • false 解析为布尔假。无效配置应在启动阶段失败,不能等第一条请求。

怎么判断改动能不能收

如果实现只用 Number 或 Boolean 直接转换,试空字符串和 false 字符串。确认命令的错误输出不含机密值。回头查业务代码,避免还有绕开配置对象的环境变量读取。

写一份脱敏的启动表,每个变量列未提供、合法和非法三种输入。默认值只应用于明确允许缺省的配置。线上环境使用不同值时,用启动日志验证采用了哪类配置即可,避免在日志打印原始凭据或整份环境。

资料来源