2012-08-22 92 views
0

window.location.hash變量如果我有一個像如何獲得在node.js中

www.example.com/path#one=a1&two=a2&three=a3 

一個URL如何直接從node.js的網址檢索變量? 因爲我使用ExpressJS,我嘗試使用req.query.variable(和req.params.variable),但那不會工作...

我的實際問題是從Facebook獲取訪問令牌,通過使用客戶端身份驗證(https://developers.facebook.com/docs/authentication/client-side/),但該網址重定向到的結構爲這樣:

YOUR_REDIRECT_URI# 
access_token=USER_ACCESS_TOKEN 
&expires_in=NUMBER_OF_SECONDS_UNTIL_TOKEN_EXPIRES 

而且我不知道如何從url中獲取參數...

+0

url = require('url'); var url_parts = url.parse(urlString); console.log(url_parts); –

回答

3

如何直接從node.js中的url檢索變量?

完全沒有,因爲URL的散列部分沒有傳輸到服務器。

我實際的問題是從Facebook獲得訪問令牌,使用客戶端驗證[...]我不知道如何來從URL得到的參數...

你也必須「得到」他們客戶端以及。

+0

哦哇......我怎麼沒有意識到......謝謝!我想我會嘗試服務器端。 – btru

0
function parseQueryString(query) { 
    var parsed = {}; 

    query.replace(
     new RegExp('([^?=&]+)(=([^&]*))?', 'g'), 
     function ($0, $1, $2, $3) { 
      parsed[decodeURIComponent($1)] = decodeURIComponent($3); 
     } 
    ); 

    return parsed; 
} 

var url = "www.example.com/path#one=a1&two=a2&three=a3"; 

console.log(parseQueryString(url.split('#')[1])); 

請注意,此wi不會嘗試檢測url參數的類型。