Jak uzyskać pełny adres URL w Express?
Powiedzmy, że mój przykładowy adres URL wygląda tak
http://example.com/one/two
http://example.com/one/twoi mówię, że mam następującą trasę
app.get('/one/two', function (req, res) {
var url = req.url;
}
Wartość
urlbędzie miała wartość
/ one/two.
Jak mogę uzyskać
pełny adres URL
w Express?
Na przykład w powyższym przypadku chciałbym uzyskać
[url=http://example.com/one/two]http://example.com/one/two[/url].
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
15 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
[/*]
[*]
Host pochodzi z , jak wskazał Gopal
[/*]
[*]
Mamy nadzieję, że nie potrzebujesz niestandardowego portu w swoich adresach URL, ale gdybyś musiał go znać, miałbyś go w stanie swojej aplikacji, ponieważ to właśnie przekazałeś do podczas uruchamiania serwera. Jednak w przypadku lokalnego programowania na niestandardowym porcie Chrome wydaje się umieszczać port w nagłówku hosta, więc zwraca na przykład . Tak więc przynajmniej w przypadku witryny produkcyjnej na standardowym porcie i bezpośredniego przeglądania aplikacji ekspresowej (bez odwrotnego serwera proxy) nagłówek wydaje się działać prawidłowo w odniesieniu do portu w adresie URL.
[/*]
[*]
Ścieżka pochodzi z (dzięki @pgrassant). Zwróć uwagę, że to TAKIE zawiera ciąg zapytania.
Dokumenty można znaleźć tutaj na req.url i req.originalUrl
http://expressjs.com/api.html#req.originalUrl... W zależności od tego, co zamierzasz zrobić z adresem URL, może, ale nie musi, być poprawną wartością w porównaniu z .
[/*]
[/list]
Połącz to wszystko, aby odtworzyć bezwzględny adres URL.
Anonimowy użytkownik
Potwierdzenie od:
node.js API dla adresów URL
http://nodejs.org/api/url.html
i przekaż informacje z express.
Przykład:
Anonimowy użytkownik
Potwierdzenie od:
Ale oto jak to skonfigurowałem:
Anonimowy użytkownik
Potwierdzenie od:
Masz teraz funkcję, którą możesz wywołać na żądanie, jeśli jej potrzebujesz.
Anonimowy użytkownik
Potwierdzenie od:
url.format
https://nodejs.org/api/url.htm ... rlobj
:
Obsługuje wszystkie protokoły i zawiera numer portu. Jeśli nie masz ciągu zapytania w originalUrl, możesz użyć tego czystszego rozwiązania:
Jeśli masz ciąg zapytania:
Anonimowy użytkownik
Potwierdzenie od:
express dla pełnomocnika
http://expressjs.com/en/guide/behind-proxies.html
:
nginx
:
apache
:
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
lub
Anonimowy użytkownik
Potwierdzenie od:
Zobacz opis originalUrl tutaj:
http://expressjs.com/api.html#req.originalUrl
http://expressjs.com/api.html#req.originalUrl
W naszym systemie robimy coś podobnego, dlatego oryginalny Url jest dla nas ważny:
blah_controller wygląda następująco:
Dlatego nasze adresy URL mają następujący format:
Dlatego potrzebujemy req.originalUrl w kontrolerze paska, aby uzyskać obsługę.
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
params['host_url'] = req.protocol + '://' + req.headers.host + req.url;
Anonimowy użytkownik
Potwierdzenie od:
Co on robi, kiedy dzwonisz
da ci to możliwość pobrania całości lub części adresu URL. Więcej informacji tutaj:
https://github.com/defunctzombie/node-url
https://github.com/defunctzombie/node-url
Użyłem go w następujący sposób, aby uzyskać wszystko, co pojawia się po/w
http:// www.example.com/
http://www.example.com/
użyć jako zmiennej i wyświetlić określony profil (coś w rodzaju Facebooka:
http://www.facebook.com/username
http://www.facebook.com/username
)
Chociaż aby to zadziałało, musisz utworzyć swoją trasę w następujący sposób w pliku server.js:
self.routes['/:username'] = require('./routes/users');
I ustaw plik trasy w ten sposób:
Anonimowy użytkownik
Potwierdzenie od:
da ci http lub https, a da ci w pełni kwalifikowaną nazwę hosta, taką jak www.google.com, zwróci resztę (w twoim przypadku )
Anonimowy użytkownik
Potwierdzenie od:
<pre class="lang-js prettyprint-override">
Anonimowy użytkownik
Potwierdzenie od:
Dodaj to do swojego kodu i już nigdy nie będziesz musiał o tym myśleć:
Możesz tam robić lub instalować inne rzeczy, takie jak logowanie do konsoli.