2013-07-19 17 views
12

Sunucu middleware (express.js kullanarak) url almam gerekir. Ben req.url kullanmak ancak url /#some/url req.url getiri / ...express.js middleware isteğinde "#" den sonra url olsun

req.path ile aynı .. dan başladığında

express.js içinde # sonra url almak için bir yolu var mı?

+0

Mümkün olan yinelenen [Url Hash (#) sunucu tarafında nasıl alınır] (http://stackoverflow.com/questions/317760/how-to-get-url-hash-from-server-side –

+2

Burada iyi bir açıklama var http://stackoverflow.com/questions/3664257/why-the-hash-part-of-the-url-is-not-in-the-server-side – Guidone

+0

# -part sunucuya aktarılmadı. –

cevap

-1

kullanın yerleşik URL'yi ayrıştıracak ve bir urlObject oluşturmak için node.js mevcuttur urlmodule. Bu, istediğiniz karma parçasını içeren hash parça özelliğine sahip olacaktır.

const url = require('url') 
const urlObj = url.parse(req.url) 
console.log(urlObj.hash) // #some/url 
+2

'' ', sunucuya aktarılmadıkça. – zerkms

4

sayılı# simgesiyle başlayan URL parçası sunucuya hiçbir zaman gönderilmez. Bir URL'deki # sembolü fragment identifier'u tanıtmaktır. Bu, sayfanın belirli bir bölümüne bağlanmak için kullanılır. Bir tarayıcı /#some/url yüklüyse, etkin olarak / yükleyecek ve id="some/url" (varsa) ile HTML öğesine atlayacaktır. Bu, parça tanımlayıcısının yalnızca tarayıcıyla alakalı olduğundan, HTTP isteği ile gönderilmez.

Ne Ancak can, window.location.hash değerini okumak ve bir XMLHttpRequest kullanarak sunucuya göndermek için istemci tarafı JavaScript kullanıyor yok. (See other Stack Overflow post.)