writeFileSync不回调

时间:2018-10-05 18:10:21

标签: javascript node.js fs writefile

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

我进行了一次谷歌搜索,另外一些帖子遇到的问题是要么1)传递的内容出错,要么2)同时具有两个写入功能。

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

这是我的代码:

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”或错误。

2 个答案:

答案 0 :(得分:2)

写入文件同步不执行回调:D

看看文档:

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

参数是(路径,数据,选项)

如果要检查文件是否实际写入,可以在写入后读取文件同步,或者检查文件的上次更新时间。否则,您应该尝试使用异步方法。

答案 1 :(得分:0)

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

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