0

比如说https://beta.biaoqing.com/callback/qq/?#access_token=CF0C8D1CDFEE38425CDB8A719080A153&expires_in=7776000
我在nodejs中用var access_token=req.query.access_token;获取不到access_token

查看全部 3 个回答

0

教你一个特别的方法:

const querystring = require('querystring');
let str = 'https://beta.biaoqing.com/callback/qq/#access_token=CF0C8D1CDFEE38425CDB8A719080A153&expires_in=7776000';

let r = querystring.parse(str);
console.log(r);

for(value in r){
    console.log('key: ', value);
    console.log('value: ', r[value]);
}

算是投机取巧吧。
es6中的 Object.values()方法可以取代上面的 for in 方法,但是只有在 node v7.x 版本才兼容。

------------------------分隔符-------------------------------

改进下上面的方法:去掉 # 这个符号就OK了。

const querystring = require('querystring');
const url = require('url');

let str = 'https://beta.biaoqing.com/callback/qq/?#access_token=CF0C8D1CDFEE38425CDB8A719080A153&expires_in=7776000';
let str2 = str.replace(/\#/g,'');//去掉 # 符号
let obj_query = querystring.parse(url.parse(str2).query); // 解析URL的 query 部分
console.log(obj_query.access_token);