2013-12-19 56 views
2

我收到了一個(迷你)快速應用程序。基本上只顯示覆蓋率結果。在這我有:在fs.readFile中使用通配符/ glob/minimatch(內部快速應用程序)

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

}); 

我的問題是,測試運行,在創建測試覆蓋率報告可以更改文件夾路徑,可以幻影1.9.3或類似的東西。所以我想我需要在中間(覆蓋範圍和lcov報告)之間建立一些通配符的路徑。

這是如何實現的?

回答

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

我沒有測試過,但我想這是要去工作!
不要忘記處理錯誤,孩子們!

+0

完美謝謝! – alonisser

+1

如果有人在家中嘗試這種方式,他應該注意他必須處理錯誤等。 – alonisser

+2

將其添加到答案中;) – gustavohenke