Bootstrap

使用express读写本地文件时遇到的问题记录(一)

前言

近来学习node服务端相关框架,主要学习express,按照惯例总要写个demo来测试。写了个小游戏雏形,使用本地JSON文件来存储游戏数据,读取文件的操作搜索一下,有人给出了如下代码

router.get("/heros", function (request, response) {
  var data = require('E:/data/heros.json'); // 要获取的json文件
  response.send(data);
})

这个方法确实可以获取到指定文件内容,但问题在于当修改该文件的时候,文件内容确实已经修改为新的内容,但此处获取仍为旧内容。只有重启服务端才能获取到新的内容。
被此问题困扰了一会,注意到修改文件使用了fs,那么读取文件也用fs想必就可以解决该问题,代码如下

router.get("/heros", function (request, response) {
  var data = fs.readFileSync('E:/data/heros.json', 'utf-8'); // 要获取的json文件
  console.log(data)
  response.send(data)
})

问题确已解决,在此处记录一下

;