fs.writeFile 没有错误,但是写入文件失败

Posted

技术标签:

【中文标题】fs.writeFile 没有错误,但是写入文件失败【英文标题】:fs.writeFile has no errors, but fails to write file 【发布时间】: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 时也是如此... 我也遇到了同样的问题,能解决这个问题吗? :// 同样的问题,目前没有解决方案? 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

可能存在权限问题。

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

sudo chmod 777 .

【讨论】:

以上是关于fs.writeFile 没有错误,但是写入文件失败的主要内容,如果未能解决你的问题,请参考以下文章

不写入 JSON 文件。 fs.writeFile 不工作

nodejs模块——fs模块 WriteFile写入文件

fs.writeFile 在新创建的 vue 项目中不起作用[重复]

node.js总结

文件的写入-对Excel文件数据操作-express生成器——

如何在 HTML 中使用 fs.writeFile(使用 node.JS)?