[英]req.query is empty and req.url is not complete using react router and express
When the page URL is http://localhost:3000/verify?token=something and I make a GET request using fetch, when I hit the server, req.url is "/verify" instead of "verify?token=something", also the req.query object is empty当页面 URL 是 http://localhost:3000/verify?token=something 并且我使用 fetch 发出 GET 请求时,当我访问服务器时,req.url 是“/verify”而不是“verify?token=something” , req.query 对象也是空的
The client is running on port 3000 and the server on port 5000. I'm using a proxy in package.json on the client-side.客户端在端口 3000 上运行,服务器在端口 5000 上运行。我在客户端的 package.json 中使用代理。
Have been scratching my head for some time now and can't figure this out, so any help would be much appreciated一直在挠我的头一段时间,无法弄清楚这一点,所以任何帮助将不胜感激
Client code:客户端代码:
App.js应用程序.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;
Verify.jsx验证.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认证.js
export default {
verify: () => {
return fetch("/user/verify")
.then(res => res.json())
.then(data => data);
}
}
Server Code:服务器代码:
User.js用户.js
userRouter.get("/verify", (req, res) => {
console.log(req.url);
console.log(req.query);
});
This is happening because the request url to the server does not contain any query parameters.Change the url written inside the fetch method like this:发生这种情况是因为到服务器的请求 url 不包含任何查询参数。 像这样更改 fetch 方法中写入的 url:
Auth.js身份验证.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);
}
}
Also pass the value of something where you are calling it like this:还要传递您正在调用它的东西的值,如下所示:
AuthService.verify(something).then(data =>{
const {message} = data;
setMessage(message);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.