簡體   English   中英

密碼發布不適用於Node.js服務器上的Reactjs

[英]Password Post not working Reactjs with Nodejs server

我試圖從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()不會顯示。 為什么會這樣呢?

不知道這是否是錯字,但是在控制台日志中,您使用的是駝峰式大小寫:

console.log(this.state.signInPassword);

在體內,您錯過了I大寫字母:

password: this.state.signinPassword

您需要更新

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');
    }
})

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM