动态加载json文件

我们知道json文件非常适合离线数据交互。比如定时从一个系统中导出数据到json文件,另外一个系统定时从json文件里导入数据,这两个系统本身不需要有接口和网络连接。下面我们主要说说nodejs加载(导入/读取)json文件的注意事项。
nodejs有多种方法读取json文件,包含同步和异步方式,一般情况下我们主要用同步方式,除非json文件很大,我们还希望在加载json文件同时进行其他操作,这时可以采用异步操作,此时需要注意后续的操作依赖json加载完成的话,需要做一下异步并发控制,比如多个大json文件加载,可以用promise.all()来搞搞。如果await的话,其实跟sync操作其实也没有多大区别。应尽量避免逻辑复杂排错困难。
加载json文件可以

let data = fs.readFileSync(jsonfilepath)
let jsondata = JSON.parse(data)

也可以这样:

let jsondata = require(jsonfilepath)

效果一样,代码上看起来下面的更简洁,不过需要注意的是如果动态调用的话,第一次大家都是从文件系统加载并解析json文件,如果json文件内容发生变化,后面再执行的话,前者是会重新加载变化了的文件,而后者不会重新加载,因为require带有缓存,它会从缓存中获得返回内容。如果你喜欢用require加载json文件也是可以的,不过得先删除一下对应缓存,这样require时找不到对应的缓存会重新加载文件系统上的json文件,要这样操作下:

delete require.cache[require.resolve(jsonfilepath)]; 
jsondata = require(jsonfilepath);

相关推荐

  1. 动态json文件

    2024-04-03 12:42:02       24 阅读
  2. 动态CSS文件

    2024-04-03 12:42:02       25 阅读
  3. Html利用Vue动态文件页面【httpVueLoader】

    2024-04-03 12:42:02       11 阅读
  4. 微信小程序动画文件

    2024-04-03 12:42:02       7 阅读
  5. html动态script

    2024-04-03 12:42:02       43 阅读
  6. vue + 动态图片

    2024-04-03 12:42:02       52 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-03 12:42:02       5 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-03 12:42:02       5 阅读
  3. 在Django里面运行非项目文件

    2024-04-03 12:42:02       4 阅读
  4. Python语言-面向对象

    2024-04-03 12:42:02       7 阅读

热门阅读

  1. 卷积神经网络

    2024-04-03 12:42:02       20 阅读
  2. python项目练习——12.在线购物商城应用程序

    2024-04-03 12:42:02       31 阅读
  3. 微知识-git rebase常用的3个场景和2个本质

    2024-04-03 12:42:02       22 阅读
  4. linux tasklet

    2024-04-03 12:42:02       19 阅读
  5. BabyAGI源码解读(2)-核心agents部分

    2024-04-03 12:42:02       24 阅读
  6. C# 各种数据结构定义以及初始化

    2024-04-03 12:42:02       26 阅读
  7. 计算机视觉无人驾驶技术:入门指南

    2024-04-03 12:42:02       25 阅读
  8. 中介者模式:优雅解耦的利器

    2024-04-03 12:42:02       22 阅读