密码发布不与Nodejs服务器Reactjs工作

时间:2018-05-08 04:53:50

标签: node.js reactjs express

我正在尝试从Reactjs前端向Nodejs服务器(带Expressjs)发送名称和密码。当我发送名称和密码时,只发送名称。这是我的Reactjs代码:

onSubmitSignIn = () => {
    console.log(this.state.signInPassword);
    fetch('http://localhost:3000/signin', {
        method: 'post',
        headers: {'Content-Type': 'application/json'},
        body: JSON.stringify({
            name: this.state.signinName,
            password: this.state.signinPassword
        })
    })
    .then(response => response.json())
    .then(user => {
        if(user.id){
            this.props.loadUser(user);
            this.props.onRouteChange('home');
        }
    })
}

此功能正确触发,console.log()显示密码。
这是我的Nodejs代码:

 app.post('/signin', (req, res) => {
     const { name, password } = req.body;

     console.log("FRONT END : ", password);
     console.log("BACK END: ", database[0].password);
     console.log("FRONT END : ", name);
     if(name == database[0].name && password == database[0].password){
         res.json(database[0]);
     }else{
         res.status(400).json("Couldn't get user");
         console.log('didnt work');
     }
 })

我从前端发布的名称的console.log()显示,但是我从前端发布的密码的console.log()不显示。为什么会这样?

2 个答案:

答案 0 :(得分:2)

不知道这是否是一个拼写错误,但在控制台日志中你使用的是驼峰案例:

console.log(this.state.signInPassword);

在身体中你错过了我的大写:

password: this.state.signinPassword

答案 1 :(得分:0)

您需要更新

onSubmitSignIn = () => {
       var data = new FormData();
    data.append("json", JSON.stringify({
                name: this.state.signinName,
                password: this.state.signinPassword
            }));    

    fetch('http://localhost:3000/signin', {
        method: 'post',
        headers: {'Content-Type': 'application/json'},
        body: data 
    })
.then(response => response.json())
.then(user => {
    if(user.id){
        this.props.loadUser(user);
        this.props.onRouteChange('home');
    }
})

}