Node.js + Vuetify 项目如何根据客户端时间从服务端获取CSV对应数据
实现方案说明
完全可以实现,这个需求的落地逻辑非常清晰,具体操作步骤如下:
服务端改造要点
- 你已经完成了CSV文件的解析工作,接下来只需要在Node.js服务端新增一个API接口,接收前端传入的时间戳/格式化时间参数即可
- 接口内用前端传入的时间参数和已解析的CSV日程数据做匹配,筛选出对应时间区间的数据后以JSON格式返回给前端即可;为了提升性能可以给解析后的CSV数据做一层内存缓存,避免每次请求都重复读取文件解析
- 建议增加参数合法性校验逻辑,避免前端传入无效的时间格式导致服务端报错
前端(Vuetify项目)实现要点
- 首先在需要调取数据的页面/组件内,用
new Date()获取客户端当前时间,可以根据你的业务需求格式化为YYYY-MM-DD、时间戳或者其他和服务端约定好的格式 - 用Axios或者你项目中在用的请求库,把格式化后的时间作为参数传给上面提到的服务端接口,拿到返回的日程数据后直接绑定到Vuetify的组件上即可,比如
v-calendar组件、列表组件都可以直接渲染 - 如果需要实时更新数据,可以加一个定时器,每隔固定时间(比如5分钟)重新获取一次当前时间发起请求,更新页面展示的日程信息
注意事项
要注意客户端时间和服务端时间可能存在的偏差,如果你的业务对时间精度要求很高,可以选择不取客户端时间,改为在服务端直接取当前服务器时间做匹配,返回对应数据即可
内容的提问来源于stack exchange,提问作者user12879631
相关产品推荐
相关产品推荐

