我正在尝试在 NestJS 中使用 ExcelJS。出于某种原因,我无法打开 xlsx 文件。
exceljs 使用此代码检查文件是否存在
fs: {
exists: function exists(path) {
return new Promise(function (resolve) {
console.log(path);
fs.access(path, fs.constants.F_OK, function (err) {
resolve(!err);
});
});
}
},
该代码返回无法读取未定义的属性“F_OK”。第 4 行的 Console.log 返回路径我发送正确
但是,如果我尝试使用此代码从我的服务访问同一文件
fs.access(this.file, fs.constants.F_OK | fs.constants.W_OK, (err) => {
if (err) {
console.error(
`${this.file} ${err.code === 'ENOENT' ? 'does not exist' : 'is read-only'}`);
} else {
console.log(`${this.file} exists, and it is writable`);
}
});
该代码返回“file.xlsx 存在,并且它是可写的”。有什么区别,为什么我不能用 exceljs 读取同一个文件?
最佳答案
我遇到了同样的问题。
原因是因为我正在导入 fs/promises
并且 constants
存储在 fs
基本上,您试图从未声明它们的地方获取常量
。
我是这样解决的:
import fsp from 'fs/promises'
import fs from 'fs'
await fsp.access(testDir, fs.constants.F_OK);
你可以看到对于 access
我使用 fsp.access
而对于 constants
fs.constants.F_OK
关于node.js - 无法读取 NodeJS 中未定义的属性 'F_OK',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64959425/