动态设置参数时如何解决路径问题?

How to resolve path issue when you set params dynamically?

我有来自客户端的参数,我想将其设置为 readFile 路径,但是当我调用 readFile 方法和 returns 空数组时它没有设置变量,因为它没有读取目录.我怎样才能更正路径问题?

如果我这样做就可以了

var filesData = {};
console.log('SEARCH ENV PRINTING', searchEnv);
if (searchEnv === 'DIT') {
  ditDirectory.readDirectory(function(files) {
    filesData.logFiles = files;
    filesData.searchEnv = searchEnv;
    asyncFiles(filesData);
  });
} else if (searchEnv === 'St') {
  stDirectory.readDirectory(function(files) {
    filesData.logFiles = files;
    filesData.searchEnv = searchEnv;
    asyncFiles(filesData);
  });
}
fs.readFile('logs/dit/'+ logfile.filename, 'utf8', function (err, data) {
  console.log('inside readFile', data);
  if (err) {
    return done(err);
  }
});
如果我根据用户输入

设置 filesData.searchEnv

将不起作用

fs.readFile('logs/' + filesData.searchEnv + '/'+ logfile.filename,
  'utf8',
  function (err, data) {
  console.log('inside readFile', data);
  if (err) {
    return done(err);
  }
});

如果你真的按照你描述的顺序调用东西,你的 filesData.searchEnv 在你调用 fs.readFile 时将不包含任何内容,因为你只在 [=12] 的异步回调中为其赋值=].

因此,您必须将文件读取调用放入回调或使用 promise 等待有效数据。