Json使用node.js

时间:2017-10-30 12:21:11

标签: node.js fs

我连接到websocket,每次我收到消息我将其内容保存到json文件。如果我在同一秒内收到两条或更多消息,它就不能正确保存它。我怎么能阻止它?每次我得到我正在使用的消息:

  fs.readFile(bought_path,'utf-8',(err,data) =>{ ...
  //do something

读取json文件,

fs.writeFile(bought_path, JSON.stringify(kupljeni_itemi) , 'utf-8');

保存已编辑的json文件。

2 个答案:

答案 0 :(得分:1)

防范的一种方法是建立一个简单的锁定机制:

let isLocked = false; // declare it in an upper scope.

if (!isLocked) { // check if it is not locked by other socket call.
  isLocked = true; // set the lock before writing the content
  fs.writeFile(file, json, (err) => {
    isLocked = false; // unlock when you get the response
  })
}

答案 1 :(得分:-1)

你可以使用同步读/写功能 - readFileSyncwriteFileSync