我有一个非常简单的后端服务器,内置在Node / Express中,通过
接受发布请求app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json())
app.post('/auth/login', (req, res) => {
console.log(req.body);
res.send(req.body);
});
当我通过Postman发送一个POST时,它在主体中带有键/值,它按照预期在Postman中返回,我可以在我的NodeJS控制台中看到交换是通过console.log
进行的。但是,当我使用React做同样的事情时,它只记录一个空对象。
这是我的反应:
handleSubmit(e) {
e.preventDefault();
const { email } = this.state;
fetch('/api/login', {
method: 'POST',
headers: {
'Content-Type':'application/json'
},
body: {
"email": email
}
});
console.log("EMAIL", email)
}
当用户在电子邮件中输入内容时,我会更新状态,当他们点击提交按钮时,会触发此handleSubmit()
。
然而输出是空的{}
我不确定我在这里做错了API不能记录状态? React记录发布到API的数据,看起来有效。
更新
以下是更新状态的代码:
handleChange(e) {
const email = e.target.value;
this.setState({
email,
});
}
更新,我没有使用.then()
来返回数据,因此我得到了一个空对象。
答案 0 :(得分:3)
fetch('/api/login', {
method: 'POST',
headers: {
'Content-Type':'application/json'
},
body: {
"email": email
}
}).then(res => console.log(res));
你需要使用.then()