【问题标题】:fs.writeFile has no errors, but fails to write filefs.writeFile 没有错误,但是写入文件失败
【发布时间】:2014-05-07 04:37:33
【问题描述】:

我正在使用 node.js,尝试保存文件,没有抛出错误,是的,图像不会保存。这就是我保存文件的方式:

var url = 'captures/' + getFileName() + '.png';

    fs.writeFile(url, base64, 'base64', function(err) {

        if(err) {
            console.log(err);
        } else {
            console.log("The file was saved!");
        }
    });

借助帮手为我制作文件名:

function getFileName(){
    var d = new Date()
    return d.getMonth()+'-'+d.getDate()+'-'+d.getYear()+'-'+d.getHours()+'-'+d.getMinutes()+d.getSeconds();
}

有人遇到过这个问题吗?

【问题讨论】:

  • 你能不能扔一些日志。在 fs.writeFile 之前,记录 url 和 base64,然后在函数内部,记录相同和错误。这可能会有所帮助。谢谢
  • 当然,我尝试记录所有部分。他们都可以正常登录。
  • 即使我添加绝对 URL 时也是如此...
  • 我也遇到了同样的问题,能解决这个问题吗? ://
  • 同样的问题,目前没有解决方案?

标签: javascript node.js fs


【解决方案1】:

问题是因为这个调用是异步的,并且可能在之后失去上下文,我能够通过使用同步执行它的fs.writeFileSync 来修复它。希望这会有所帮助

【讨论】:

    【解决方案2】:

    添加console.log('captures/' + getFileName()) 只是为了确保您的文件名正确。当我遇到这个问题时,结果证明我的文件路径/名称有问题,而节点并没有给我一个错误来解释。

    【讨论】:

      【解决方案3】:

      对于 Typescript 版本, 只是在这里分享我的经验,在我的用例中有一个 JSON 文件,我曾经在其中存储一些临时数据,读取它并进行一些更改并更新它并将更新的数据存储到相同的 JSON 文件中,以供下一个周期使用。 fs.writeFile 没有抛出任何错误,它没有更新我的 JSON 文件,因为 JS 版本运行良好,然后我意识到 typescript 在我的根目录或 src 目录中进行了这些更改。在那里创建了另一个 JSON 文件。

      【讨论】:

        【解决方案4】:

        可能存在权限问题。

        进入你保存文件的目录,然后

        sudo chmod 777 .

        【讨论】:

          猜你喜欢
          • 2018-08-31
          • 1970-01-01
          • 2021-09-06
          • 1970-01-01
          • 2019-02-22
          • 1970-01-01
          • 1970-01-01
          • 2021-12-07
          • 2021-03-26
          相关资源
          最近更新 更多