writeFileSync产生0字节文件 - 随机

时间:2016-10-31 00:34:58

标签: node.js openshift fs writefile livescript

对writeFileSync的调用正在随机生成一个0字节的文件。

目的是将json写入文件,然后在每次json更改时重写它。并在启动时加载json。但是文件保持变为0字节长,大部分时间它都可以工作,然后几天就变成0字节。

代码:LiveScript https://github.com/audreyt/ethercalc/blob/master/src/db.ls   或转换为JavaScript https://github.com/audreyt/ethercalc/blob/master/db.js

   try
      db.DB = JSON.parse do
        require \fs .readFileSync "#dataDir/dump.json" \utf8
      console.log "==> Restored previous session from JSON file"
      db.DB = {} if db.DB is true
    Commands =
      bgsave: (cb) ->
        fs.writeFileSync do
          "#dataDir/dump.json"
          JSON.stringify db.DB,,2
          \utf8
        cb?!

记录等:

if fs.existsSync "#dataDir/dump.json" #check file exists - throws exception if exists and read fails
  #console.log "==> Found previous JSON file"
  try      
    db.DB = JSON.parse do
      require \fs .readFileSync "#dataDir/dump.json" \utf8
    console.log "==> Restored previous session from JSON file"
    db.DB = {} if db.DB is true
  catch 
    console.log "dump file locked, exit process"
    process.exit! 
else
  console.log "No existing dump file - #dataDir/dump.json "
Commands =
  bgsave: (cb) ->
    fs.writeFileSync do
      "#dataDir/dump.json"
      JSON.stringify db.DB,,2
      \utf8
    cb?!

关于如何调试或重新构建的建议非常受欢迎。

注意: - 解决方法 - 当我每24小时添加一次自动重启时,它解决了问题 - 当它变为0字节时,代码打印"转储文件被锁定,退出进程" - 代码在openshift服务器上运行 - 当服务器自动重启时,看起来变为0字节 - 不是手动重启,而是当服务器决定触发重启时

0 个答案:

没有答案