writeFileSync 不回调

writeFileSync doesn't callback

我正在使用 writeFileSync 函数在本地写入文件,文件确实被写入,但是,回调函数从未被调用。

我进行了一些谷歌搜索,其他一些 post 遇到的问题是 1) 传递内容出错或 2) 同时具有两个写入功能。

我的问题是我的代码中还有其他一些地方使用了 writeFileSync,但它们在不同的路径上(不确定这是否是正确的术语,localhost:port#/differentroutes <- something像这样)。我只在自己的路线上进行测试,因此甚至不应该调用这些写入函数。

这是我的代码:

if(!fs.existsSync(dir)){
        fs.mkdirSync(dir)
    }

//content is just a string var I swear it's just a string

    fs.writeFileSync('./pages/SubmissionProcess.html',content,function(err){
        if(err){
            throw err
        }else {
            console.log("YES")
        }
    })

我从来没有看到这个 "YES" 即使文件已经写入,我的控制台也没有错误....

写入文件同步不接受回调:D

看看文档:

https://nodejs.org/api/fs.html#fs_fs_writefilesync_file_data_options

参数为(路径、数据、选项)

如果你想检查文件是否真正写入,你可以在写入后读取文件同步或者查看文件最后一次更新的时间。否则,您应该尝试使用异步方法。

所有同步方法throw而不是将错误传递给回调。

try {
    fs.writeFileSync('./pages/SubmissionProcess.html', content);
    console.log('YES');
} catch (e) {
    console.error(e);
}