小程序从本地存储迁移到服务端,全程记录,都是干货!!
📅 2026/6/30 22:50:29
👁️ 次浏览
我的小程序从本地存储迁到服务端全程记录几个月前我做了个小程序叫「一纸云深」一个记录每日心情的情绪治愈工具。一开始图省事所有数据都存在微信小程序的本地缓存里。用户用了一段时间后问题来了❌换个设备记录全丢——用户换了手机过去的日记全没了❌手机和 iPad 不能共用——数据被隔离在两个设备上❌删了重装回到解放前——本地存储经不起任何卸载操作于是我决定把它改成服务端版。这篇文章记录下整个迁移过程。️ 改造方案只动数据层不动界面最理想的方案是最小改动——数据层从 localStorage 换到服务器 API界面不动。改造范围只有三块后端——新建 Spring Boot 项目建表、写 CRUD 接口前端——把读取 localStorage 的地方换成调后端 API登录——加上微信静默登录关联用户 表结构设计小程序的核心数据是「日记」两张表就够了CREATETABLEt_user(idBIGINTAUTO_INCREMENTPRIMARYKEY,openidVARCHAR(64)NOTNULLUNIQUE,create_timeDATETIMEDEFAULTCURRENT_TIMESTAMP);CREATETABLEt_diary(idBIGINTAUTO_INCREMENTPRIMARYKEY,user_idBIGINTNOTNULL,dateVARCHAR(10)NOTNULL,timeVARCHAR(5)NOTNULL,mood_typeINTNOTNULL,contentVARCHAR(200)DEFAULT,create_timeDATETIMEDEFAULTCURRENT_TIMESTAMP,INDEXidx_user_date(user_id,date)); 每条日记关联用户通过 openid 来识别是谁写的。 接口设计只做最基础的 5 个接口接口方法说明/api/mini/loginPOST接收 code返回 JWT token/api/mini/diary/listGET获取当前用户的日记列表/api/mini/diary/savePOST保存一条日记每日上限 5 条/api/mini/diary/updatePUT更新日记内容/api/mini/diary/deleteDELETE删除一条日记 前端改造统一 API 封装原来读取日记的代码是这样的// 改造前读 localStoragefunctionloadDiaries(){constdatauni.getStorageSync(yizhi_diary)returndata?JSON.parse(data):[]}改成调后端 API// 改造后调后端 APIexportasyncfunctiongetDiaries(){constresawaitrequest(GET,/diary/list)returnres.data||[]}每个页面记录页、分析页、日历页、我的页都做了同样的替换。改动量不大但需要细心一个页面漏了就会显示空数据。 统一返回结构之前图省事直接用Map.of()返回 JSON结果发现Map.of()不允许 null 值遇到空数据直接抛 NPE。改成一个统一的 ApiResult 类DatapublicclassApiResultT{privateintcode;privateStringmessage;privateTdata;publicstaticTApiResultTsuccess(Tdata){returnnewApiResult(200,success,data);}}所有接口统一返回{code, message, data}格式前端处理起来也统一。⏰ 关于 onShow 的一个小坑微信小程序的页面生命周期和 Vue 不太一样。如果用了onMounted从其他 Tab 切回来时不会重新触发。// 从其他页面回来不会刷新onMounted(async(){awaitloadData()})// 每次显示页面都会刷新onShow(async(){awaitloadData()})⚠️这个坑藏得挺深——所有页面都改完了才发现首页数据一直是缓存切换 Tab 回来还是旧数据。 部署与上线前后端开发完成后按以下步骤上线后端打包——mvn clean package -DskipTests上传到服务器——scp jar 到服务器nohup java -jar启动前端生产构建——npm run build:mp-weixin上传体验版——在微信开发者工具上传配置白名单——微信公众平台 → 开发管理 → 服务器域名✅ 总结这次迁移花了大概两天时间几点经验核心要点✅先确认方案再动手——花一小时写设计文档明确改造范围✅接口返回用统一对象——别用Map.of()null 值处理是定时炸弹✅页面数据用 onShow——小程序 Tab 切换不会重新触发 onMounted✅微信登录在 dev 环境要 mock——本地调不通微信接口加个测试 openid如果这篇文章对你有帮助欢迎点赞收藏最后安利一下我的小程序「一纸云深」——一个温暖的情绪治愈小工具微信搜索就能体验。关于作者无羡独立开发者专注AI应用开发。 分类全栈开发 关注我获取更多技术分享 个人博客云深不知处 独立开发省钱攻略查看详情 体验我的AI产品一纸云深如果这篇文章对你有帮助欢迎点赞、收藏、关注你的支持是我持续创作的动力点击「阅读原文」查看我的独立开发笔记 点击查看我的个人介绍 点击查看我的小红书主页
——一个系统真正的安全边界,不是"有资格执行",而是"有能力拒绝执行"摘要传统系统的安全机制几乎都围绕"授权"展开:一个请求只要通过身份认证、权限检查、审批流程和策略校验,系统就认为它有了执行…
📅 2026/6/30 22:50:29
前沿技术介绍:AI智能体视觉(TVA,Transformer-based Vision Agent)是依托Transformer架构与“因式智能体”理论所构建的颠覆性工业视觉技术,属于“物理AI” 领域的一种全新技术形态,完成了从“虚拟世界”到“…
📅 2026/6/30 22:50:29
大家好,我是 Java陈序员。
现如今,随着大模型落地加速,越来越多企业开始搭建私有化 AI 能力。现阶段大多数开源 AI 平台基于 Python/Go 开发,虽然功能丰富,但对传统 Java 项目非常不友好。对于大量 Java 架构、信创项目…
📅 2026/6/30 22:50:29
1.工作原理
通过调整PWM波的频率改变无源蜂鸣器的音调,按乐谱编程实现旋律播放。
其中输出PWM波的频率决定音调,占空比决定音量大小。
2.基础内容
2.1乐谱 其中#C指升C大调,比中央C高半个音。
4/4指四分音符为一拍(后&#x…
📅 2026/7/1 4:29:22
铸件是机械装备的基础毛坯。铸铁件、铸钢件,从几公斤的小零件到几十吨的大箱体,都要经过检测才能进入机加工。铸件的尺寸超差,轻则加工余量不够,重则整个毛坯报废。铸件生产的质检环节,一直是车间里最耗人的地方。
铸件…
📅 2026/7/1 4:29:22
一、什么是企业级Agent
企业级Agent是一种能够自主理解业务目标、规划执行路径、调用工具和系统、并与人类协作完成复杂任务的智能体。与传统的聊天机器人不同,企业级Agent具备以下核心能力:
自主规划:能够将复杂目标拆解为可执行的子任务工具…
📅 2026/7/1 4:29:22
更多请点击:
https://intelliparadigm.com
第一章:企业级VMware组网黄金标准概述 企业级VMware环境的网络架构设计直接决定虚拟化平台的可用性、安全性和可扩展性。黄金标准并非单一配置模板,而是融合最佳实践的系统性原则集合,涵…
📅 2026/7/1 4:29:22
一、引言
在前面的文章中,我们学习了使用requests、BeautifulSoup、Selenium、Playwright、asyncio、Scrapy、代理IP和Cookie等工具来爬取网页。但是,很多网站为了防止爬虫,会设置验证码机制。
验证码(CAPTCHA)是一种用于区分人类和机器的安全机制,广泛应用于登录、注册…
📅 2026/7/1 4:29:22
一、先跑通 SDK 基础代码,再补齐 Agent 的交互层
这类大模型数字人 Demo 的开发,第一步应该先把通用 SDK 基础代码固定下来:引入 SDK、初始化实例、绑定渲染容器、加载数字人形象、监听生命周期状态,再用 speak 承接模型输出&…
📅 2026/7/1 4:27:21
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/1 0:00:39
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/1 0:00:39
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/1 0:00:39
6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…
📅 2026/6/30 10:04:37
引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…
📅 2026/6/30 6:54:54
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/1 0:00:39
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/1 0:00:39
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/1 0:00:39