首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试传递新用户信息,但发生了TypeError

尝试传递新用户信息,但发生了TypeError
EN

Stack Overflow用户
提问于 2022-08-23 13:33:38
回答 1查看 42关注 0票数 0

这里有什么问题?

TypeError:无法读取未定义的属性(读取“电子邮件”)

POST http://localhost:3001/signin 500 (内部服务器错误) xhr.js:220 Uncaught (承诺)AxiosError{消息:‘状态代码500请求失败’,名称:'AxiosError',代码:'ERR_BAD_RESPONSE',配置:{…},请求: XMLHttpRequest,…}

/userRouter

代码语言:javascript
复制
const router = express.Router()
const User = require("../models/userModel")

router.route("/signin").post((req, res, next) =>{
    const email = req.body.email;
    const password = req.body.password;
    const newUser = new User({
        email,
        password
    });

    newUser.save()
})

module.exports = router; 

/userModel

代码语言:javascript
复制
const Schema = mongoose.Schema

const userSchema = new Schema({
    email: '',
    password: ''
})

const User = mongoose.model("User", userSchema)

module.exports = User;

/server

代码语言:javascript
复制
const app = express()
const cors =  require("cors")
const mongoose = require("mongoose")

app.use(cors())
app.use(express())

//connect to mongoose
mongoose.connect("mongodb+srv://daw_dzieniszewski:******@cluster0.mn9uw.mongodb.net/firma_edukacyjna")

//require route
app.use("/", require("./backend/routes/userRoute"))

app.listen(3001, function (){
    console.log("express  server  is running on port 3001")
})

/SigninC

代码语言:javascript
复制
import {Container} from "react-bootstrap"
import axios from "axios";

function SignInC() {


    const [input, setInput] = useState({
        email: '',
        password: ''
    })

    function handleChange(event) {
        const {name, value} = event.target;

        setInput(prevInput => {
            return {
                ...prevInput,
                [name]: value
            }
        })
    }

    function handleClick(event) {
        event.preventDefault();
        console.log(input);
        const newUser = {
            email: input.email,
            password:input.password
        }
        axios.post('http://localhost:3001/signin', newUser)
            .then(function (response) {
                console.log(response);
            })
    }

    return (
        <div className="p-5 m-3 d-sm-flex">
            <Container className="container-sm w-auto p-5 border rounded-4 bg-light">
                <div>
                    <form>
                        <div className="mb-4">
                            <label htmlFor="InputEmail" 
                                   className="form-label fs-4">Email address</label>
                            <input onChange={handleChange} 
                                   name="email" value={input.email} 
                                   type="email"
                                   className="form-control form-control-sm"
                                   id="exampleInputEmail1"></input>
                        </div>
                        <div className="mb-4">
                            <label htmlFor="InputPassword1" 
                                   className="form-label fs-4">Password</label>
                            <input type="password" 
                                   className="form-control" 
                                   id="exampleInputPassword1"></input>
                        </div>
                        <div className="mb-4">
                            <label htmlFor="InputPassword2" 
                                   className="form-label fs-4">Repeat password</label>
                            <input onChange={handleChange} 
                                   value={input.password} 
                                   name="password" 
                                   type="password"
                                   className="form-control" 
                                   id="exampleInputPassword2"></input>
                        </div>
                        <button onClick={handleClick} type="submit" className="btn btn-primary">Sign In</button>
                    </form>
                </div>
            </Container>
        </div>
    );
}


export default SignInC;
EN

回答 1

Stack Overflow用户

发布于 2022-08-23 13:51:55

尝试在您的await newUser.save()中使用newUser.save()而不是newUser.save(),并使函数异步async (req,res,next)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73459719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档