2016-10-06 115 views
0

我正在開發一個帶有nodeJS和表達式的SFTP儀表板。 但我有一個問題,我的根。變量路由快速問題

我想在每個文件夾和子文件夾,subsubfolders導航...但我 GET沒有工作

網址:/家庭 文件夾1 | folder2 | folder3

我點擊Folders1,URL:/ home/folders1 folder1-1 | folder1-2 ...

下一個網址:/家庭/ 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 }) 
    }) 
})}) 

但是當我點擊的/ home /文件夾1:

不能得到的/ home/files2

你能幫助我嗎?

Thx

回答

0

這是您的路由參數的問題。嘗試使用這個。

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

而且得到它你可以使用

req.params[0] 
+0

謝謝我正在進入GET。 但我現在怎麼能得到這個參數「:file」好嗎? – TzanaOverflow

+0

@TzanaOverflow修復了正則表達式,並添加了獲取參數的方式。 –

0

我想:

.get('/home\/:file([a-zA-Z.0-9-\/_!]+)', function(req, res){ 

它的工作好,我可以在很多文件夾的瀏覽,但是我錯過了一些caract,爲例如「éèö等...」 是否有可能反轉此正則表達式採取所有?

thx