我想使用node.js实现文件系统监视程序,以便它监视特定JSON文件的更改。
然后,我想获取文件内部的更改。
答案 0 :(得分:2)
这是一种方法:
这是一个例子:
const fs = require('fs')
const diff = require('deep-diff')
const filepath = './foo.json'
const getCurrent = () => JSON.parse(fs.readFileSync(filepath, {
encoding: 'utf8'
}))
let currObj = getCurrent()
fs.watch(filepath, { encoding: 'buffer' }, (eventType, filename) => {
if (eventType !== 'change') return
const newObj = getCurrent()
const differences = diff(currObj, newObj)
console.log(differences)
// { kind: 'N' } for new key additions
// { kind: 'E' } for edits
// { kind: 'D' } for deletions
currObj = newObj
})
请注意,为简洁起见,我在这里使用fs.readFileSync
。您最好使用fs.readFile
而不是非阻塞。