我收到了这段代码:
var log = (function () {
'use strict';
var fs = require('fs'), baseName='', path = require('path');
fs.readFile('./config.json', {encoding : 'utf-8'}, function (err, data) {
if (!err) {
var parsedConfig = JSON.parse(data);
logPath = parsedConfig.logFile;
baseName = path.basename(logPath, '.log');
if (logPath.length==0 )
logPath = './alteredFile.log';
} else {
throw err;
}
});
}());
var module;
module.exports = log;
我正在尝试设置变量baseName
,但在fs.readFile
回调的一侧,它未设置且仍为空!怎么能解决这个问题?
答案 0 :(得分:1)
baseName
以及fs
和path
只能在log
函数的范围内使用。如果您希望它在log
范围之外(包括fs.readFile
),则必须在包含log
的更广范围内声明它(如果log
本身位于全局范围内全球范围)。