2013-12-19 3 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이나 뭐 비슷한 수 있다는 것입니다. 그래서 나는 중간에 와일드 카드와 함께 경로를 만들어야한다고 생각한다. (coverage와 lcov-report 사이에)

어떻게 달성 할 수 있습니까?

답변

9

기본적으로 노드에서는 할 수 없지만이 용도로 타사 모듈을 사용할 수 있습니다. 예를 들어
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