我试图创建一个新文件,但下面的两个方法都给我一个错误:
fs.writeFile(fullPath, '', (error) => { alert("exist") })
exist
exist
并创建文件if (!fs.existsSync(fullPath)) {
fs.appendFile(fullPath)
} else {
alert("exist")
}
exist
DeprecationWarning: Calling an asynchronous function without callback is deprecated.
我做错了什么?
我也尝试过以下答案中建议的这种方法:
// fullPath= 'C:/Users/Name/test.txt'
fs.writeFile(fullPath, '', (error) => {
if(error) {
alert("exist")
return
}
alert("created")
})
我得到了这个:
created
created
并创建文件我设法以稍微不同的方式使它工作:
if (!fs.existsSync(fullPath)) {
fs.writeFileSync(fullPath, '')
} else {
alert("exist")
}
答案 0 :(得分:2)
对于方法1,您使用的是fs.writeFile(file, data[, options], callback)
。因此无论如何都会调用回调,警告'存在'。你应该检查一下,如:
fs.writeFile(fullPath, '', (error) => {
if(error) {
alert("exist");
return;
}
// no error, do what you want.
});
参考:https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback
对于方法2,您将收到警告,因为您在没有回调的情况下调用fs.appendFile。使用fs.appendFileSync或给它回调。
参考:https://nodejs.org/api/fs.html#fs_fs_appendfile_file_data_options_callback