我正在使用fs.statSync
创建一个函数,该函数返回文件存在与否的布尔值。它看起来像这样:
function doesExist (cb) {
let exists
try {
fs.statSync('./cmds/' + firstInitial + '.json')
exists = true
} catch (err) {
exists = err && err.code === 'ENOENT' ? false : true
}
cb(exists)
}
示例用例:
let fileExists
doesExist('somefile.json', function (exists) {
fileExists = exists
})
然而,运行代码会引发一个TypeError: string is not a function
。我不明白为什么。
答案 0 :(得分:4)
我认为您要删除该回调,并将文件名添加到您的参数中:
function doesExist(firstInitial) {
try {
fs.statSync('./cmds/' + firstInitial + '.json')
return true
} catch(err) {
return !(err && err.code === 'ENOENT');
}
}
let fileExists = doesExist('somefile');
不过,还有fs.exists
。