 的 expireAt 参数设置 key 的过期时间?)
如何用 puter.kv.set() 的 expireAt 参数设置 key 的过期时间【免费下载链接】puter The Internet Computer! Free, Open-Source, and Self-Hostable.项目地址: https://gitcode.com/GitHub_Trending/pu/puter如果你用 Puter 的 KV Store 写入数据并且希望这个 key 在指定时刻之后自动失效、从存储中被移除就用到puter.kv.set()的expireAt参数。它让你在一次写入调用里就带上过期时间戳而不是先写入、再单独调用过期接口。适用于 websites、apps、nodejs、workers 四类平台见 set 文档 frontmatter 中的platforms声明。expireAt 的取值规则expireAt是一个可选的 Number 参数含义是key 应过期的时间戳秒即 Unix 时间戳单位是秒而不是“从现在起多少秒”。expireAt 文档 中的示例展示了如何计算“1 秒后过期”的时间戳(Date.now() / 1000) 1Date.now()返回毫秒除以 1000 换成秒后再加偏移量。文档没有对过期时刻的精度、时钟来源等做更多说明需要多久过期就按此方式换算偏移量。三种携带 expireAt 的写入形式set 文档 给出的语法中expireAt可以出现在单个写入和批量写入的每一种形式里puter.kv.set(key, value) puter.kv.set(key, value, expireAt) puter.kv.set({ key, value, expireAt }) puter.kv.set([ { key, value, expireAt }, ... ]) puter.kv.set({ items: [ { key, value, expireAt }, ... ] })即位置参数puter.kv.set(sessionToken, token-value, (Date.now() / 1000) 3600)过期时间作为第三个参数对象形式puter.kv.set({ key, value, expireAt })传单个对象批量形式数组里每个 item 都可以带各自的expireAt一次请求写入多个带过期时间的 key。几种形式下key最大 1 KB、value最大 400 KB对象/数组按原样存储。返回值是 Promise在 key 被创建或已有 key 的值被更新后 resolve 为true——你可以用这个true判断写入成功。完整示例写入后验证过期效果下面是 expireAt 文档 示例改写用set()带上expireAt写入等待过期时间点后用puter.kv.get()验证。文档示例中 key 在 1 秒后过期2 秒后再读取html body script srchttps://js.puter.com/v2//script script (async () { // (1) 写入时直接指定 1 秒后过期的时间戳 const success await puter.kv.set( name, Puter Smith, (Date.now() / 1000) 1 ); puter.print(Key-value pair name created/updated:, success); // (2) 过期前读取应能取到值 const before await puter.kv.get(name); puter.print(Before expiry, value :, before); // (3) 等 2 秒已过过期时间点后再读 setTimeout(async () { const name await puter.kv.get(name); puter.print(After expiry, value :, name); }, 2000); })(); /script /body /html验证依据get 文档 说明puter.kv.get(key)在 key 不存在时 resolve 为undefined。因此过期时间点之前读取应返回写入的值过期之后读取返回undefined即可确认expireAt生效。上面的输出顺序与内容对应文档示例流程实际以运行环境为准。限制与相关说明与expire()的区别puter.kv.expire(key, ttlSeconds)的第二个参数是“从现在起多少秒”TTL而set()的expireAt是绝对时间戳秒。需要给已存在的 key 单独设置过期时刻时可用puter.kv.expireAt(key, timestampSeconds)它同样接收秒级 Unix 时间戳设置成功后 resolve 为true见 expireAt 文档、expire 文档。数值精度value 中的数字必须落在 ±9,007,199,254,740,991Number.MAX_SAFE_INTEGER内超出的数会被截断到边界值而不是报错NaN会被存成null需要保持精确的大数字请以字符串存储见 set 文档 的 Parameters 一节。写入即覆盖set()会替换整个条目再次写入同一 key 时如果不再带expireAt该条目就不再有过期时间。更多 KV Store 操作incr、del、list 等可参考 KV 模块文档。【免费下载链接】puter The Internet Computer! Free, Open-Source, and Self-Hostable.项目地址: https://gitcode.com/GitHub_Trending/pu/puter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考