2

我有一个(迷你)快递应用程序。基本上只是显示覆盖结果。在里面我有:

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('');
        }
    });

});

我的问题是测试运行器在创建测试覆盖率报告时可以更改文件夹路径,可以是 Phantom 1.9.3 或类似的东西。所以我想我需要在中间(在覆盖范围和 lcov-report 之间)使用某种通配符来构建路径。

如何做到这一点?

4

1 回答 1

9

在 Node 中你不能,但你可以为此目的使用 3rd 方模块。
例如,使用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('');
         }
      });
   });
});

我还没有测试它,但我想它会工作!
不要忘记处理错误,孩子们!

于 2013-12-19T10:58:20.950 回答