我试图编写函数bonus(myPath),希望将其传递给目录的完整路径。在内部,我使用fs.stat捕获文件大小并将其放入对象中。我可以在fs.stat函数中console.log对象,但是不能导出它。你能建议吗?
我尝试在所有地方进行console.logging,以查看丢失的对象。
const fs = require("fs");
const originalPath = __dirname + "/files";
bonus(originalPath);
function bonus(myPath) {
let obj = {};
fs.readdir(myPath, { withFileTypes: true }, (err, files) => {
if (err) {
console.log(err);
}
// console.log(files);
for (let i = 0; i < files.length; i++) {
// console.log(files[i].name);
// obj[files[i].name] = "test";
// console.log(`${myPath}/${files[i].name}`);
fs.stat(`${myPath}/${files[i].name}`, (err, stat) => {
if (err) {
console.log(err);
}
// console.log(stat.size);
// console.log(files[i].name);
obj[files[i].name] = stat.size;
console.log(obj); // this works!
return obj;
});
}
console.log(obj); // this is empty!
});
}
预期结果:返回填充的对象 实际结果:返回空对象。