Javascript req.query为空,且req.url未使用react路由器和express完成

Javascript req.query为空,且req.url未使用react路由器和express完成,javascript,reactjs,express,react-router,react-router-dom,Javascript,Reactjs,Express,React Router,React Router Dom,当页面URL为http://localhost:3000/verify?token=something 我使用fetch发出一个GET请求,当我点击服务器时,req.url是“/verify”,而不是“verify?token=something”,req.query对象也是空的 客户端在端口3000上运行,服务器在端口5000上运行。我在客户端使用package.json中的代理 我已经挠头有一段时间了,现在还不能弄明白这一点,所以任何帮助都将不胜感激 客户端代码: App.js import

当页面URL为http://localhost:3000/verify?token=something 我使用fetch发出一个GET请求,当我点击服务器时,req.url是“/verify”,而不是“verify?token=something”,req.query对象也是空的

客户端在端口3000上运行,服务器在端口5000上运行。我在客户端使用package.json中的代理

我已经挠头有一段时间了,现在还不能弄明白这一点,所以任何帮助都将不胜感激

客户端代码:

App.js

import {BrowserRouter as Router, Route} from "react-router-dom";


function App() {

  return (
    <Router>
      <Navbar/>
      <Route exact path="/" component={Home}/>
      <UnPrivateRoute path="/verify" component={Verify}/>
    </Router>
  );
}

export default App;
服务器代码:

User.js

userRouter.get("/verify", (req, res) => {
    console.log(req.url);
    console.log(req.query);
});

之所以发生这种情况,是因为服务器的请求url不包含任何查询参数。请按如下方式更改在fetch方法中写入的url:

    AuthService.verify(something).then(data =>{
        const {message} = data;
        setMessage(message);
    });
Auth.js

    export default {
       verify: (something) => {   //where something is the value of token
         return fetch('/user/verify?token='+something)
           .then(res => res.json())
           .then(data => data);
     }
    }
还可以将某个对象的值传递到您这样称呼它的位置:

    AuthService.verify(something).then(data =>{
        const {message} = data;
        setMessage(message);
    });

你能分享你的包.json中的
react-router-dom
版本吗?这是“react-router-dom”版本“^5.2.0”是的,我知道了。出于某种原因,我不认为URL不会传递到服务器,因为服务器和客户端在不同的端口/服务器上运行
    AuthService.verify(something).then(data =>{
        const {message} = data;
        setMessage(message);
    });