在fs.readFile中使用通配符/ glob/minimatch(在Express应用程序内)

alo*_*ser 2 node.js express node.js-connect

我有一个(迷你)快递应用程序.基本上只显示覆盖率结果.我有:

app.get('/coverage', function(req, res) {
   fs.readFile(path.join(__dirname, '/coverage', 'PhantomJS 1.9.2 (Linux)', 'lcov-report', 'index.html'), 'utf8', function(err, content) {

        if(!err) {
            res.send(content);
        } else {
            res.setHeader({ status: '404' });
            res.send('');
        }
    });

});
Run Code Online (Sandbox Code Playgroud)

我的问题是测试运行器,在创建测试覆盖率报告时可以更改文件夹路径,可以是Phantom 1.9.3或类似的东西.所以我想我需要在中间建立一些带有通配符的路径(在coverage和lcov-report之间).

怎么能实现这一目标?

gus*_*nke 9

您可以在Node中本地使用,但您可以使用第三方模块来实现此目的.
例如,使用glob模块:

var glob = require('glob');

app.get('/coverage', function(req, res) {
   glob(path.join(__dirname, '/coverage', 'PhantomJS *', 'lcov-report', 'index.html'), function(err, matches) {
      if (err) {
         // handle error
      }

      fs.readFile(matches[0], 'utf8', function(err, content) {
         if(!err) {
            res.send(content);
         } else {
            res.statusCode(404);
            res.send('');
         }
      });
   });
});
Run Code Online (Sandbox Code Playgroud)

我没有测试过,但我想它会起作用!
别忘了处理错误,孩子们!

  • 把它添加到答案;) (2认同)