fs.statSync 包含在函数中时会引发错误?
fs.statSync throws an error when contained in a function?
我正在使用 fs.statSync
创建一个函数,该函数 returns 是一个布尔值,用于判断文件是否存在。它看起来像这样:
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
。我不知道为什么。
我想你想删除那个回调,并将文件名添加到你的参数中:
function doesExist(firstInitial) {
try {
fs.statSync('./cmds/' + firstInitial + '.json')
return true
} catch(err) {
return !(err && err.code === 'ENOENT');
}
}
let fileExists = doesExist('somefile');
顺便说一句,还有 fs.exists
。
我正在使用 fs.statSync
创建一个函数,该函数 returns 是一个布尔值,用于判断文件是否存在。它看起来像这样:
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
。我不知道为什么。
我想你想删除那个回调,并将文件名添加到你的参数中:
function doesExist(firstInitial) {
try {
fs.statSync('./cmds/' + firstInitial + '.json')
return true
} catch(err) {
return !(err && err.code === 'ENOENT');
}
}
let fileExists = doesExist('somefile');
顺便说一句,还有 fs.exists
。