2014-11-18 15 views
18

Jak przeanalizować adres URL?Node.js, analiza pliku z adresu URL

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

lub

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

Muszę someFile.txt, gdzie jest nazwa pliku ustawić sam jak format (txt lub jakiś inny).

UPDATE

Próbowałem

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

Ale nadal nie można uzyskać ścieżkę (someFile.txt).

+1

Powinieneś wspomnieć o wszystkich szczegółach od samego początku. - http://nodejs.org/docs/latest/api/url.html – Cheery

+2

Masz na myśli, że chcesz pobrać 'someFile.txt'? – falsetru

+0

Tak. Może to być dowolny plik na serwerze (np. 'Kitty.jpg' lub' order.json'). – Aaron

Odpowiedz

33

Coś takiego ..

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)); 
+0

Używam serwera node.js. I próbuję parsować kod po stronie serwera. – Aaron

-1

Twój przykład można łatwo rozwiązywane przy użyciu Node.js’s url module:

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

Jednak to nie działa z przykładowym URL node.js jest (bo to dostałem więcej ścieżek).

Przez truncanting pełną ścieżkę rozpoczynającą się najbardziej na prawo kreską, to będzie otrzymując nazwę pliku:

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

A jeśli ten pomysł jest uważany za wystarczająco bezpieczne dla urządzenia, możemy to zrobić zwykły:

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