2016-10-06 14 views
0

나는 nodeJS로 SFTP 대시 보드를 개발하고있다. 하지만 내 뿌리에 문제가 있습니다. |/홈 폴더 1 :가변 라우팅 익스프레스 문제

나는 각각의 폴더 및 하위 폴더 및 subsubfolders에서 탐색 할 ...하지만 내 GET은

URL을 작동하지 않았다 folder2 | folder3

Folders1을 클릭하면 URL :/home/folders1 folder1-1 | folder1-2 ...

다음 URL :/홈/folders1/folder1-2

내가이 길 만든

:

.get('/home/:file(.+)', function(req, res){ 

    conn.sftp(function(err, sftp){ 
    if (err) throw err; 

    console.log('SFTP connexion ok') 
    console.log(req.params.file) 

    sftp.readdir('/'+ req.params.file, function(err, list) { 
     if (err) throw err; 

     var foldersList = []; 
     var filesList = []; 

     list.forEach(function(value, key){ 
      if(value.longname.substring(0,1) == 'd'){ 
       foldersList.push(value) 
      } 
     }) 
     list.forEach(function(value, key){ 
      if(value.longname.substring(0,1) != 'd'){ 
       filesList.push(value) 
      } 
     }) 
     res.render('folders.ejs', { foldersList : foldersList, filesList : filesList, path : req.path }) 
    }) 
})}) 

을하지만 클릭/홈/폴더 1 :

는 files2

당신이 날 도와 줘요 수/홈/얻을 수 없다?

Thx

답변

0

경로 매개 변수에 문제가 있습니다. 이것을 사용해보십시오.

.get(/\/home\/([file].+)/, function(req, res){ 

그리고 그것을 얻기를 위해 사용할 수있는

req.params[0] 
+0

내가 GET을 (를) 입력했습니다. 하지만 이제 어떻게 param을 얻을 수 있습니까? ": file"? – TzanaOverflow

+0

@TzanaOverflow 정규 표현식을 수정하고 매개 변수를 가져 오는 방법을 추가했습니다. –

0

내가 시도 :

.get('/home\/:file([a-zA-Z.0-9-\/_!]+)', function(req, res){ 
그것은 잘 작동하고

, 나는 많은 폴더 탐색 할 수 있습니다하지만 난에 대해, 일부 caract를 그리워 예를 들어 "éèö etc ..." 이 정규식을 모두 반전 할 수 있습니까?

thx