Meu Primeiro App com React Native - #12 Integrando frontend com backend
18/08/2020Nessa videoaula realizaremos a integração do lado frontend com o lado backend da nossa aplicação criada com React Native.
Integrando front e backend com React Native
views/Login.js
No nosso componente Login faremos a criaçao de novos estados e a função que vai enviar os dados para o nosso lado backend:
export default function Login()
{
const [display, setDisplay]=useState('none');
const [user, setUser]=useState(null);
const [password, setPassword]=useState(null);
const [login, setLogin]=useState(null);
//Envio do formulário de login
async function sendForm()
{
let response=await fetch('http://192.168.0.102:3000/login',{
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: user,
password: password
})
});
let json=await response.json();
if(json === 'error'){
setDisplay('flex');
setTimeout(()=>{
setDisplay('none');
},5000);
}
}
return(
<KeyboardAvoidingView style={[css.container, css.darkbg]}>
<View style={css.login__logomarca}>
<Image source={require('../assets/img/logomarca.png')} />
</View>
<View>
<Text style={css.login__msg(display)}>Usuário ou senha inválidos!</Text>
</View>
<View style={css.login__form}>
<TextInput style={css.login__input} placeholder='Usuário:' onChangeText={text=>setUser(text)} />
<TextInput style={css.login__input} placeholder='Senha:' onChangeText={text=>setPassword(text)} secureTextEntry={true} />
<TouchableOpacity style={css.login__button} onPress={()=>sendForm()}>
<Text style={css.login__buttonText}>Entrar</Text>
</TouchableOpacity>
</View>
</KeyboardAvoidingView>
);
}
Posteriormente receberemos esses dados no nosso backend e devolveremos a resposta pro lado cliente.
Controller.js
const express=require('express');
const cors=require('cors');
const bodyParser=require('body-parser');
const models=require('./models');
const app=express();
app.use(cors());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
let user=models.User;
let tracking=models.Tracking;
let product=models.Product;
app.post('/login',async (req,res)=>{
let response=await user.findOne({
where:{name:req.body.name, password: req.body.password}
});
if(response === null){
res.send(JSON.stringify('error'));
}else{
res.send(response);
}
});
let port=process.env.PORT || 3000;
app.listen(port,(req,res)=>{
console.log('Servidor Rodando');
});
Por hoje é só! Sucesso nos códigos e na vida!
Posts Relacionados
Meu Primeiro App com React Native - #11 CRUD
Nessa videoaula aprenderemos como realizar as operações básicas no banco de dados. Realizaremos as operações de inserçao, edição, seleção e delete.
Meu Primeiro App com React Native - #13 AsyncStorage
Nesse tutorial falaremos sobre um importante módulo do React Native chamado AsyncStorage. Com esse módulo conseguimos persistir os dados da aplicação.