【发布时间】:2021-02-10 17:21:11
【问题描述】:
当页面 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;
验证.jsx
import AuthService from "../api/auth";
const Verify = () => {
const [message,setMessage] = useState(null);
const [confirm,setConfirm] = useState(true);
if(confirm){
AuthService.verify().then(data =>{
const {message} = data;
setMessage(message);
});
setConfirm(false);
}
return(
<div className="container">
<h1>Verify</h1>
{message ? <Message message={message}/> : null}
</div>
)
}
export default Verify;
auth.js
export default {
verify: () => {
return fetch("/user/verify")
.then(res => res.json())
.then(data => data);
}
}
服务器代码:
用户.js
userRouter.get("/verify", (req, res) => {
console.log(req.url);
console.log(req.query);
});
【问题讨论】:
-
您能否分享一下您的 package.json 中的
react-router-dom版本? -
这里是版本 "react-router-dom": "^5.2.0"
标签: javascript reactjs express react-router react-router-dom