我正在尝试连接我的react应用程序与登录页面的后端。我正在使用一个承诺返回一个成功消息。
login.js
onSubmitSignIn = () => {
fetch('http://localhost:5000/', {
method : 'post',
headers :{ 'Content-Type' : 'application/json'},
body : JSON.stringify({
userId : this.state.userId,
password : this.state.password
}).then(response => response.json())
.then(data => {
if(data === 'success'){
this.props.onRouteChange('home');
}
})
})
}
后端代码-
exports.findById = (req) => {
return new Promise((resolve) => {
var sql = "Select * from users where userid = '" + req.body.userId + "' ;";
connection.query(sql,req, function (error, results, fields) {
var data = JSON.parse(JSON.stringify(results));
var valid = false;
if( data.length !=0 && req.body.userId === data[0].userid && req.body.password === data[0].password)
valid = true;
if(valid) {
resolve({message : "success"});
}else{
reject({ message :"fail"});
}
});
})
};
单击“登录”按钮后,出现错误**“TypeError:字符串化(...).then不是函数”**
我尝试了一些解决方案,从类似的问题,它不工作,在我的情况下。
4条答案
按热度按时间enyaitl31#
then
应该在fetch
之外brjng4g32#
您有一个排印错误,
.then
应该在fetch
上,而不是在JSON.stringify
上。lstz6jyr3#
你丢失了一个方括号。2在JSON.stringify()后面应该有一个右方括号。
cfh9epnr4#
我也遇到过这个问题。请检查并确认您没有在应用程序中导入或需要{JSON}。它很可能是指导入的JSON,而不是全局