我正在使用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”或错误。
答案 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);
}