【发布时间】:2022-02-01 19:35:39
【问题描述】:
我创建了一个具有后端(MongoDB 和 Mongoose)的 React.js 应用程序。在我的应用程序中,我有一个注册表单组件,我想要的是当用户单击注册页面上的 Register 按钮时,输入字段中的所有数据都应存储在我的后端。我使用 MongoDB-atlas 作为后端。我的后端服务器在端口 5000 上运行,而前端在端口 3000
上运行我在我的 package.json 文件中添加了这一行 "proxy": "http://localhost:5000"
当我尝试测试我的项目时,首先我启动我的前端和后端服务器。但是当我点击 Register 按钮时,我在控制台中收到 2 个错误:
1-Proxy error: Could not proxy request /favicon.ico from 127.0.0.1:3000 to http://localhost:5000
2-Uncaught (in promise) SyntaxError: Unexpected Token P in JSON at position 0
这是我目前安装的版本信息:
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-router-dom": "^6.2.1",
"react-scripts": "3.4.1"
这是我的Signup.jsx文件代码
import React, {useState} from 'react'
import {NavLink, useNavigate} from 'react-router-dom'
const Signup = () => {
const navigate = useNavigate()
const [user, setUser] = useState({
name: "",
email: "",
phone: "",
work: "",
password: "",
cpassword: ""
})
let name, value
const handleInput = (event) => {
name = event.target.name
value = event.target.value
setUser({...user, [name]:value})
}
const postData = async (event) => {
event.preventDefault()
const {name, email, phone, work, password, cpassword} = user
const res = await fetch('/register', {
method: 'POST',
headers: {
"Accept": "application/json",
'Content-Type': 'application/json'
},
body: JSON.stringify({name, email, phone, work, password, cpassword})
})
const data = await res.json()
if(data.status === 422 || !data){
window.alert("Failed to register")
}else{
window.alert("Registered successfully please signin")
navigate('/signin')
}
}
return (
<>
<section>
<h1>Sign up</h1>
<form method='POST'>
<input value={user.name} onChange={handleInput} type="text" name="name" placeholder="Your full name"></input>
<input value={user.email} onChange={handleInput} type="email" name="email" placeholder="Your email"></input>
<input value={user.phone} onChange={handleInput} type="number" name="phone" placeholder="Your phone number"></input>
<input value={user.password} onChange={handleInput} type="password" name="password" placeholder="Create a password"></input>
<input value={user.cpassword} onChange={handleInput} type="password" name="cpassword" placeholder="Please retype your password"></input>
<input onClick={postData} type="submit" name="signup-btn" value="Register"></input>
</form>
<NavLink to="/login">Already have an account - Login</NavLink>
</section>
</>
)
}
export default Signup
【问题讨论】:
标签: node.js reactjs mongodb react-router mern