我正在使用nodeJS和express开发SFTP仪表板。 但我的根本问题。
我想在每个文件夹和子文件夹以及子文件夹中导航...但是我的 GET没有工作
网址:/ home folder1 | folder2 | folder3
我点击Folders1,URL:/ home / folders1 folder1-1 | folder1-2 ......
下一个网址:/ home / 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 / folder1:
时你能帮帮我吗?无法获取/ home / files2
THX
答案 0 :(得分:0)
这是您的路线参数中的问题。试试这个。
.get(/\/home\/([file].+)/, function(req, res){
为了获得它,你可以使用
req.params[0]
答案 1 :(得分:0)
我试过了:
.get('/home\/:file([a-zA-Z.0-9-\/_!]+)', function(req, res){
它工作得更好,我可以在很多文件夹中导航但是我想念一些文章,例如“éèöeto......” 是否有可能将此正则表达式反转为全部?
THX