Node.js,从URLparsing文件名

我怎样才能parsing一个url?

site.com:8080/someFile.txt?attr=100 

要么

 site.com:8080/someFile.txt/?attr=100 

我需要得到file.txt ,其中是我自己设置的文件名格式(txt或其他)。

UPDATE

我试过了

 var path = url.parse(req.url).path; 

但我仍然无法获得path( someFile.txt )。

像这样的东西

 var url = require("url"); var path = require("path"); var parsed = url.parse("http://example.com:8080/test/someFile.txt/?attr=100"); console.log(path.basename(parsed.pathname)); 

你的例子可以很容易地使用Node.js的url模块来处理:

 var URL = require('url').parse('site.com:8080/someFile.txt?attr=100'); console.log(URL.pathname.replace(/(^\/|\/$)/g,'')); // "someFile.txt" 

但是,这不适用于Node.js的示例URL(因为它有更多的path)。

通过截断从最右斜杠开始的完整path,它将产生文件名:

 var URL = require('url').parse('http://user:pass@host.com:8080/p/a/t/h?query=string#hash'); console.log(URL.pathname.substring(URL.pathname.lastIndexOf('/')+1)); // "h" 

如果这个想法被认为足够安全的设备,我们可以做到这一点:

 var file = url.substring(url.lastIndexOf('/')+1).replace(/((\?|#).*)?$/,''); /* hashes and query strings ----^ */