Javascript express.js request.query为空

Javascript express.js request.query为空,javascript,express,google-oauth,Javascript,Express,Google Oauth,我从google OAuth2重定向了URL, http://localhost:997/?#state=pass-通过%20value&access_token=ya29.ImC6B1g9LYsf5siso8n_uphofb0sxc5dqsm6lqhrwxbtnheblxjeloytggwsvtctgxojjjodiutyh7vchozcefud_&u token_type=Bearer&expires_in=3599&scope=https://www.googleapis.com/auth

我从google OAuth2重定向了URL,
http://localhost:997/?#state=pass-通过%20value&access_token=ya29.ImC6B1g9LYsf5siso8n_uphofb0sxc5dqsm6lqhrwxbtnheblxjeloytggwsvtctgxojjjodiutyh7vchozcefud_&u token_type=Bearer&expires_in=3599&scope=https://www.googleapis.com/auth/youtube.readonly

当我想从中获取访问令牌时,问题出现了

var express = require('express'),
  app = express(),
  port = process.env.PORT || 997;

app.get("/", (req, res, next) => {
    console.log(req.query);
    res.send("hi");
});

app.get("/url", (req, res, next) => {
    res.json('test');
});

app.listen(port, ()=>{
  console.log("Server on port: " + port);
});
进入现场后的输出:

`[nodemon] starting `node main.js`
Server on port: 997
{}
删除
#state=pass-through%20value
后,使链接看起来
http://localhost:997/?&access_token=ya29.Il-6B4zOwiM7bLeWcyJX9iQGuj3lCGU-6lbnJWdxqcPkBCMkUf8P2xxwMUrFjI-mNNT-X8QEBxA18p1IXsGS5wjiscVMv和令牌类型=承载和到期时间=3599和范围=https://www.googleapis.com/auth/youtube.readonly
,工作正常,输出正确。有人知道我做错了什么吗?

从您的请求中删除
。因为在
#
之后,签名url将不会被使用。
#
符号通常用于指示特定的
DOM元素id

你的
URL
应该是这样的,

http://localhost:997/?state=pass-通过%20value&access_token=ya29.ImC6B1g9LYsf5siso8n_uphofb0sxc5dqsm6lqhrwxbtnheblxjeloytggwsvtctgxojjjodiutyh7vchozcefud_&u token_type=Bearer&expires_in=3599&scope=https://www.googleapis.com/auth/youtube.readonly 

也请参考此


如果要使用
传递
Dom元素id
,则应在
url
末尾使用它

?param=sasad¶m2=adsasa#my_元素

如果
是参数的一部分,则应将其编码为
%23
您应该将其发送到请求正文后

从您的请求中删除
。因为在
#
之后,签名url将不会被使用。
#
符号通常用于指示特定的
DOM元素id

你的
URL
应该是这样的,

http://localhost:997/?state=pass-通过%20value&access_token=ya29.ImC6B1g9LYsf5siso8n_uphofb0sxc5dqsm6lqhrwxbtnheblxjeloytggwsvtctgxojjjodiutyh7vchozcefud_&u token_type=Bearer&expires_in=3599&scope=https://www.googleapis.com/auth/youtube.readonly 

也请参考此


如果要使用
传递
Dom元素id
,则应在
url
末尾使用它

?param=sasad¶m2=adsasa#my_元素


如果
是参数的一部分,则应将其编码为
%23
您应该将其发送到请求正文中

谢谢您的回复!但是这个URL是来自google OAuth2的重定向URL,我是否能够以某种方式更改它,并且仍然将其作为查询?重定向URL是由您提供的,对吗?因为你是说谷歌在成功认证后重定向到那个URL。所以你们应该在你们这边进行修正。好吧,重定向url现在看起来很好,因为我不能把localhost放在那个里。老实说,我不知道怎么做。我试着自己获取
request.url
并解析它,但这似乎是个愚蠢的想法。还有更好的吗?我不认为。那么你应该使用
request.url
手动完成。谢谢你的帮助:)谢谢你的回复!但是这个URL是来自google OAuth2的重定向URL,我是否能够以某种方式更改它,并且仍然将其作为查询?重定向URL是由您提供的,对吗?因为你是说谷歌在成功认证后重定向到那个URL。所以你们应该在你们这边进行修正。好吧,重定向url现在看起来很好,因为我不能把localhost放在那个里。老实说,我不知道怎么做。我试着自己获取
request.url
并解析它,但这似乎是个愚蠢的想法。还有更好的吗?我不认为。那么你应该使用
request.url
手动完成。谢谢你的帮助:)