我正在try 创建一个注册表单,使用node.js将Reaction连接到后端.它运行得很好,但现在我面临的问题是
将标头发送到客户端后无法设置标头
当用户名正确时(即),实现了Results.Long==0,而不是插入数据,它会给出错误.当我判断它时:
R.js:154未捕获(promise 中)AxiosError:{消息:‘网络错误’,名称:‘AxiosError’,代码:‘ERR_NETWORK’,配置:{…},请求:XMLHttpRequest,…} P
const cors=require("cors");
const { response } = require("express");
const express = require("express");
const app = express();
const mysql=require("mysql");
app.use(cors());
app.use(express.json());
const db=mysql.createConnection({
host: "localhost",
user: "root",
password:"password",
database:"ggsklogin",
});
app.post("/checkusersk",(req,res)=>{
const username=req.body.username;
const password=req.body.password;
db.query("select username from skcred where username=?;",[username],
(err,results)=>{
res.send(results);
if(err){
res.send({err});
}
if(results.length>0){
res.send({message:"username exists"});
}
if(results.length==0){
res.send({message:"done"});
db.query("insert into skcred(username,password) values(?,?)",[username,password],
);
}
});
});
我的前端代码:
import React, { Fragment } from 'react';
import { useState,useEffect} from 'react';
import axios from 'axios';
import ReactSearchBox from "react-search-box";
import { connect } from 'react-redux';
import { key } from 'localforage';
import { Alert } from 'bootstrap';
import { useNavigate } from 'react-router-dom';
function Newlogin() {
const navigate=useNavigate()
const[usernamea,setusername]=useState('')
const[passworda,setpassword]=useState('')
const[repeatpass,setreapeatpass]=useState('')
const[loginstatus,setLoginstatus]=useState('')
const check=()=>{
axios.post('http://localhost:3001/checkusersk', {
username: usernamea,
password: passworda,
}).then((response)=>{
if(response.data){
console.log(response.data)
setLoginstatus(response.data.message);
}
if(response.data=0) {
navigate('/sk-details')
}
})
}
if(loginstatus=='done'){
navigate('/sk-details')
}
const passwordcheck=(e)=>{
if(passworda!=repeatpass){
setLoginstatus("password mismatch")
}
check()
}
return (
<div>
<div>
<input type="text" placeholder='enter username' name='username' onChange={(e)=>{setusername(e.target.value)}}/>
<br/>
<br/>
<input type="password" placeholder='enter password' name='password' onChange={(e)=>{setpassword(e.target.value)}}/>
<br/>
<br/>
<input text="password" placeholder='repeat password' name='repeatpass' onChange={(e)=>{setreapeatpass(e.target.value)}}/>
<br/>
<br/>
<button onClick={passwordcheck}></button>
</div>
<div class="alert alert-info" role="alert">
{loginstatus}
</div>
</div>
);
}
export default Newlogin;
我也在期待你们的另一种解决方案.也就是说,在前端,如果用户名唯一且密码匹配,则应该重定向到"/SK-Detailures".请也为我提供一个解决方案.
在第一种情况下,我试图显示结果,但它给出了不可否认的错误. 在第二种情况下,当用户名和密码都正常时,它不会被重定向!