Node.js readFile 读文件描述符:文件没变,为什么第二次只读到空串 同一个小文件先检查两字节的头部,再把文件描述符交给 readFile,希望得到完整内容,结果开头两字节不见了。再次调用又只返回空串。文件没有被删改,变化的是已打开文件的读取位置:接口会接着当前位置读下去。传路径和传描... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Node.js path.resolve:后面多了一个斜杠,前面的目录为什么被丢下 配置文件里约定输出目录位于项目根目录下,用户填写 exports 时得到预期结果,填写 /exports 却直接变成根目录下的路径。很多代码把 resolve 想成“把所有片段接在前缀后面”,实际上它是在计算一个绝对... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Node.js 移除事件监听:已经 off 了,为什么本轮回调仍然执行 一个事件有两个处理器:第一个发现任务已经取消,于是移除第二个;日志却显示第二个在这一轮仍被调用。这不是删除函数失效,而是“今后不再订阅”和“当前分发立刻停止”具有不同的时间边界。先把同一轮和下一轮分开观察Node.j... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Bash BASH_REMATCH:辅助函数匹配一次,外层捕获结果为什么被换掉 解析任务名称时,外层正则已经拿到了类型和编号,接着调用一个辅助函数检查编号是否全是数字,再读取捕获数组却发现类型不见了。问题可能发生在检查函数里:它执行了另一次正则匹配,把同一个 BASH_REMATCH 数组改成了... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Python sqlite3 复用游标:外层查询还有两行,为什么内层查一次就读不到了 循环读取任务清单时,内部再查一次数量,处理完第一条以后循环就结束了。表里明明还有数据,单独执行同一查询也能返回全部记录。这时值得检查是否把同一个 Cursor 同时用于外层遍历和内层查询:游标管理当前执行及取行状态,... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Python sqlite3 的连接上下文:with 已经结束,为什么数据库连接仍然能查询 把 sqlite3.connect 放进 with,导入结束后继续执行查询居然仍然成功。很多人从文件对象的习惯推断,离开 with 就一定关闭了资源,但连接对象的上下文协议承担的是事务处理,不负责关闭连接。它是否提交... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Python dedent 的共同缩进:看起来对齐的制表符和空格,为什么一格也没有删 把多行提示文字放进函数里的三引号字符串,前面为了源码整齐加了缩进。调用 textwrap.dedent 后,大部分模板能顶格,另一个模板却原样保留了缩进。编辑器里各行看起来齐平,不代表开头字符相同:一行用制表符,一行... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Python logging 的 stacklevel:日志已经输出,为什么每条都指向同一个包装函数 项目把统一日志格式放进一个辅助函数,业务代码调用它时文字都正确,文件名和行号却总是指向那几行公共代码。排查导入失败时,每个入口看起来都像来自同一个地方。因为日志默认记录的是实际调用日志接口的位置;包装层已经变成这个位... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Cloudflare OS托管版开放候补名单:现有工作区扩展代码与办公连接,Word导出仍待推出 2026年10月1日,Cloudflare为Cloudflare OS完全托管部署开放候补名单。官方公告说明,现有开源版本可以部署到自己的Cloudflare账号;托管版本将由平台承担更多配置、运行与更新工作,目前需... yunqueblog/ 最新资讯/ 2026-10-02/ 3 阅读
Cloudflare Artifacts进入公开测试:仓库可触发智能体流程,Git平台竞赛开放提交 2026年10月1日,Cloudflare介绍Artifacts的新能力,并宣布以Workers与Artifacts构建下一代Git平台的竞赛。官方公告确认,Artifacts目前面向Workers Paid客户开放... yunqueblog/ 最新资讯/ 2026-10-02/ 3 阅读