我正在尝试读取文件参数。当我编写这段代码时:
var fs = require('fs'),
size = new Object();
fs.stat(file, function(err,stats){
if(!err){
size=stats;
}
})
console.log(size);
没关系,当我尝试使用函数时:
var fs = require('fs'),
size = new Object();
function writeinfile(file){
fs.stat(file, function(err,stats){
if(!err){
size=stats;
}
})
console.log(size.size);
}
writeinfile('error.log');
这是行不通的。你能帮我解决变体 2 的问题吗?
最佳答案
您的 console.log 在您的 fs.stat 回调之外。修复它:
var fs = require('fs'),
size = new Object();
function writeinfile(file){
fs.stat(file, function(err,stats){
if(!err){
size=stats;
console.log(size.size);
}
})
}
writeinfile('error.log');
我还重写了您的代码以在 Node.js 中使用更惯用(更常见)的语法:
var fs = require('fs');
function writeinfile (file, cb) {
fs.stat(file, function(err,stats){
if(err) return cb(err);
cb(null, stats.size);
})
}
writeinfile('error.log', function(err, size) {
if(err) {
console.log(err);
return;
}
console.log('The size of the file is ' + size);
});
正如 Herman 在他的回答中提到的,如果您不写入文件,最好选择一个更好的函数名称。
最后,在 Javascript 中,您可以使用 {}
作为 new Object()
的快捷方式。例如:var size = {};
关于node.js - 在 nodejs 中使用 fs.stat 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13128037/