Node.js 登录成功,但未重定向到reactjs中的其他页面(react路由器dom,axios)
作为标题,当我成功登录时,它将保留在登录页面上。它以前有用,但现在不行了。我认为错误是因为我使用了loadToken()(如下所示的路由),但事实并非如此。请有人指出我的错误并帮我改正。 我是个新手Node.js 登录成功,但未重定向到reactjs中的其他页面(react路由器dom,axios),node.js,reactjs,Node.js,Reactjs,作为标题,当我成功登录时,它将保留在登录页面上。它以前有用,但现在不行了。我认为错误是因为我使用了loadToken()(如下所示的路由),但事实并非如此。请有人指出我的错误并帮我改正。 我是个新手 //logRegRequester.js login = async () => { const res = await axios.post('http://localhost:3001/logRegRequester', { logemail
//logRegRequester.js
login = async () => {
const res = await axios.post('http://localhost:3001/logRegRequester', {
logemail: this.state.logemail,
logpassword: this.state.logpassword
})
console.log(res);
if (res.status === 200) {
saveToken(res.data.userId);
this.props.history.push('/homeRequester');
}
}
//server
if (req.body.logemail && req.body.logpassword) {
User.authenticate(req.body.logemail, req.body.logpassword, function (error, user) {
if (error || !user) {
var err = new Error('Wrong email or password.');
err.status = 401;
return next(err);
} else {
req.session.userId = user._id;
return res.send({userId: user._id});
}
});
}
//app.js
function App() {
return (
<Router>
<div className="App">
<Route path="/" exact component={home} />
<Route path="/logRegRequester" exact component={logReg} />
<Route path="/homeRequester" exact component={homeRequester} />
{/* {loadToken() ? <Route path="/homeRequester" exact component={homeRequester} /> : <Redirectto="/" />} */}
</div>
</Router>
);
}
//logRegRequester.js
login=async()=>{
const res=等待axios.post('http://localhost:3001/logRegRequester', {
logemail:this.state.logemail,
logpassword:this.state.logpassword
})
控制台日志(res);
如果(资源状态===200){
saveToken(res.data.userId);
this.props.history.push('/homeRequester');
}
}
//服务器
if(req.body.logemail&&req.body.logpassword){
用户身份验证(req.body.logemail、req.body.logpassword、函数(错误、用户){
if(错误| |!用户){
var err=新错误(“错误的电子邮件或密码”);
err.status=401;
返回下一个(错误);
}否则{
req.session.userId=user.\u id;
返回res.send({userId:user.\u id});
}
});
}
//app.js
函数App(){
返回(
{/*{loadToken()?:}*/}
);
}
放置一个控制台,检查您的代码是否到达此行this.props.history.push(“/homeRequester”)代码>它以前是成功的,但现在不是。它看起来像是重定向到localhost:3000/logRegRequester?电子邮件=&密码=…
(在url栏中)。在控制台中,我没有收到任何返回的内容。虽然它以前在我仍然成功登录时返回了预期的对象。我不明白发生了什么变化,它不再工作了。在您以前的工作副本中,loadToken行被注释掉,就像您当前的代码一样?不,在此之前,它没有注释,也没有第三条路线(如上面的代码)。但当我像那样修复它时,它仍然不工作。你能把它发布到代码笔或任何沙盒中吗?