内容分类
编程笔记
复盘一个 React/Taro 共用表单把初始发布误判为编辑、最终请求 PATCH /resources/undefined 的问题:如何从请求方法和载荷确认分支,用可辨识联合约束子组件属性,判断客户端状态检查的合理位置,并避免把局部修复扩张成全局 ID 校验。
记录 Bun TypeScript 服务端为解决 Worker 无法在 VS Code 命中断点而形成的双运行结构:调试时通过 RUN_WORKER_IN_MAIN 把同一循环放回主线程,生产仍使用独立 Worker,并说明 isMainThread、postMessage、双入口构建与 Docker 启动。
记录一次微信小程序真机正则兼容问题:开发者工具可以运行的 `\p{Script=Han}`,在真机 JavaScript 运行时却抛出 `Invalid property name`。文章说明这种 Unicode 属性转义为什么会在目标环境失效、怎样改用明确的汉字区间,以及必须保留该语法时如何做能力检测。
用完整代码复盘 Taro 小程序冷启动认证竞态:useLaunch 登录为何报找不到页面实例,App.onShow 刷新为何制造数据库写入,以及认证屏障、401 单飞续期、无状态 JWT 和角色同步应当怎样配合,并给出可直接落地的客户端与服务端代码。
读完一篇认证令牌存储文章后,我重新梳理了 localStorage、HttpOnly Cookie、服务端 Session 与 BFF 的适用场景,也补充了 CSRF、JWT 撤销和 DBSC 的边界。存储位置没有统一答案,先要确认浏览器究竟需不需要接触 Token。
一次普通的 400 错误,让我顺着客户端弹窗查到了服务端响应、共享错误码、RequestError、生产日志和 Hono RPC 类型生成。这里记录我怎样把错误链重新串起来,也说明为什么直接 import type 仍会读取服务端源码,以及我最后为何保留 dts-bundle-generator。
记录 Drizzle ORM 0.45.x 配合 Bun.SQL 写入 PostgreSQL JSONB 时遇到的双重编码:嵌套对象被保存成 string,导致属性读取失败。文章给出 jsonb_typeof 定位 SQL、jsonb_build_object 修复和回归测试方法。
记录博客取消 2K、4K 和超大屏专门适配的原因。我查看常用网站和 Tailwind CSS 的默认响应式方式后,没有发现页面需要随物理分辨率不断放大;相反,内容通常保持最大宽度,宽屏只增加留白。几次自定义断点还破坏了首页、文章、Tools 与 About,最终项目恢复默认断点和 max-w-7xl。
记录 Taro 小程序半屏抽屉的两个交互问题:图标看得见却难以点中,系统返回又会直接离开页面。文章使用 44px 触控热区与 PageContainer 假页容器,让右滑返回、安卓物理返回键和代码返回优先关闭抽屉,并说明嵌套弹窗、遮罩动画与真机验证时容易踩到的边界。