Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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
Javascript 如何使用MySQL登录ReactJS、NodeJS?_Javascript_Mysql_Node.js_Reactjs_Axios - Fatal编程技术网

Javascript 如何使用MySQL登录ReactJS、NodeJS?

Javascript 如何使用MySQL登录ReactJS、NodeJS?,javascript,mysql,node.js,reactjs,axios,Javascript,Mysql,Node.js,Reactjs,Axios,我是ReactJS的初学者,我想使用ReactJS、NodeJS和MySQL登录我的表单 我的班级登录名如下: handleClick(event){ var self = this; var payload={ "username":this.state.username, "password":this.state.password } axios({ method: 'post',

我是ReactJS的初学者,我想使用ReactJS、NodeJS和MySQL登录我的表单

我的班级登录名如下:

     handleClick(event){
    var self = this;
    var payload={
      "username":this.state.username,
        "password":this.state.password
    }
    axios({
          method: 'post',
          url: '/app/login/',
          data: payload,
          withCredentials: true,
          headers: {
            'Access-Control-Allow-Origin': '*',
            'Content-Type': 'application/json',
            'Accept': 'application/json',
          }
        })

   .then(function (response) {
     console.log(response);
     if(response.data.code == 200){

    this.props.history.push("http://localhost:5000/brillo#/");
     }
     else{
       swal("Erreur !", "Erreur !", "error");
     }
   })
   .catch(function (error) {
     console.log(error);
   });
  }
  handleredirect(){
    this.props.history.push("/register");
    }
  render() {
    return (
      <div className="app flex-row align-items-center">

                    <Form  method="POST" >

                      <InputGroup className="mb-3">
                        <Input type="text" placeholder="Username" autoComplete="username" value={this.state.username} onChange={e => this.setState({ username: e.target.value })} required/>
                      </InputGroup>
                      <InputGroup className="mb-4">
                        <Input type="password" value={this.state.password} placeholder="Password" onChange={e => this.setState({password: e.target.value })} autoComplete="current-password"   required/>
                      </InputGroup>
                      <Row>
                        <Col xs="6">
                          <Button type="button" color="primary" className="px-4" onClick={(event) => this.handleClick(event)}>Login</Button>
                        </Col>
                        <Col xs="6" className="text-right">
                          <Button color="link" className="px-0">Forgot password?</Button>
                        </Col>
                      </Row>
                    </Form>

      </div>
    );
  }
}

export default Login;
当我通过发布<代码>http://localhost:4000/app/login/我得到:

{
    "code": 204,
    "success": "Email does not exits"
}
但我在注册表格上发布了我提交的用户名和密码,当我运行前端时,我得到:

{data: {…}, status: 200, statusText: "OK", headers: {…}, config: {…}, …}
config:
{
data:
code:204
success:"Email does not exits"
我想当我点击登录按钮时,它会被重定向到仪表板页面


我如何解决它?

您的nodejs路由器似乎不正确,您从正文中获取电子邮件、密码、用户名,但电子邮件不是通过react发送的。那么您在数据库、电子邮件或用户名中查找什么

下一个

connection.query('SELECT * FROM users WHERE username = ?',[username], function...
我认为应该更像:

connection.query('SELECT * FROM users WHERE username = \'' + username + '\'', function...
顺便说一下,您的回答不正确:您应该返回:

return res.status(500).json({ failed: 'error ocurred'})
而不是

res.send({"code":400,"failed":"error ocurred"})

当我更改它时,我得到:
{“failed”:“error ocurred”}
打印失败的json响应中的错误以帮助您。返回res.status(500).json({failed:'error ocurred:'+error}),并且对于每个res.send,您应该转换为正确的res.status(XXX).json(json.OBJ),并在我获得:
xhr.js:178 POST之前添加一个返回(但这不是您当前的问题)http://localhost:5000/app/login/ 500(内部服务器错误)DispatchXhreQuest@xhr.js:178 xhrAdapter@xhr.js:12 dispatchRequest@dispatchRequest.js:59 Promise.then(异步)request@Axios.js:51 Login.js:51错误:请求失败,状态代码为500,位于createError(createError.js:16),位于settle(settle.js:18),位于XMLHttpRequest.handleLoad(xhr.js:77)
res.send({"code":400,"failed":"error ocurred"})