Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 登录成功,但未重定向到reactjs中的其他页面(react路由器dom,axios)_Node.js_Reactjs - Fatal编程技术网

Node.js 登录成功,但未重定向到reactjs中的其他页面(react路由器dom,axios)

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

作为标题,当我成功登录时,它将保留在登录页面上。它以前有用,但现在不行了。我认为错误是因为我使用了loadToken()(如下所示的路由),但事实并非如此。请有人指出我的错误并帮我改正。 我是个新手

//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行被注释掉,就像您当前的代码一样?不,在此之前,它没有注释,也没有第三条路线(如上面的代码)。但当我像那样修复它时,它仍然不工作。你能把它发布到代码笔或任何沙盒中吗?