Я пытаюсь создать логин для домашней страницы с реакцией и узлом, используя данные пользователя из жестко закодированной базы данных. Бэкэнд узла распознает пароль json и адрес электронной почты, но я не могу получить код для отправки данных обратно во внешний интерфейс для входа в систему.
Я протестировал бэкэнд с почтальоном, чтобы убедиться, что я могу получить данные.
узел сервера :
app.post('/signin', (req, res) => {
if(req.body.email === database.users[0].email &&
req.body.password === database.users[0].password) {
res.json('success');
}
else {
res.status(400).json('error logging in');
}
})
реагировать
class Signin extends React.Component {
constructor(props) {
super(props);
this.state = {
signInEmail: '',
signInPassword: ''
}
}
onSubmitSignIn = () => {
fetch('http://localhost:5000/signin', {
method: 'post',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
email: this.state.signInEmail,
password: this.state.signInPassword
})
})
.then(user => {
if (user.id) {
this.props.loadUser(user)
this.props.onRouteChange('home');
}
})
}
база
const database = {
users: [
{
id: '123',
name: 'andrew',
email: 'andrew@outlook',
password: 'p',
entries: 0,
joined: new Date()
},
{
id: '124',
name: 'sally',
email:' sally@outlook',
password: 'bananas',
entries: 0,
joined: new Date()
},
],
}
Это работает, когда я удаляю вызов .then(user =>)
и сразу перехожу к this.props.onRouteChange('home')
, но в противном случае остается на странице входа. Это сводит меня с ума, любая помощь приветствуется.