0
I am having a problem at the moment of requesting my local API with React Native. Request through Postman works correctly, by React Native error occurs:
Possible Unhandled Promise Rejection
My request code in React Native:
import AsyncStorage from '@react-native-community/async-storage';
const BASE_API = 'http://127.0.0.1:8082';
export default {
checkToken: async (token) => {
const req = await fetch(`${BASE_API}`, {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({token})
});
const json = await req.json();
return json;
},
signIn: async (academia, usuario, senha) => {
console.log(`${BASE_API}/create`);
const req = await fetch(`${BASE_API}/create`, {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({academia, usuario, senha})
});
const json = await req.json();
return json;
},
};
My API code in Node.js:
const restify = require('restify');
const errs = require('restify-errors');
const cors = require('cors');
const server = restify.createServer({
name: 'myapp',
version: '1.0.0'
});
var knex = require('knex')({
client: 'mysql',
connection: {
host : '127.0.0.1',
user : 'root',
password : '',
database : 'testeapi'
}
});
server.use(restify.plugins.acceptParser(server.acceptable));
server.use(restify.plugins.queryParser());
server.use(restify.plugins.bodyParser());
server.listen(8082, function () {
console.log('%s listening at %s', server.name, server.url);
});
// rotas REST
server.use((req, res, next) => {
//Qual site tem permissão de realizar a conexão, no exemplo abaixo está o "*" indicando que qualquer site pode fazer a conexão
res.header("Access-Control-Allow-Origin", "*");
//Quais são os métodos que a conexão pode realizar na API
res.header("Access-Control-Allow-Methods", 'GET,PUT,POST,DELETE');
server.use(cors());
next();
});
server.get('/', (req, res, next) => {
knex('rest').then((dados) => {
res.send(dados);
}, next)
});
server.post('/create', (req, res, next) => {
knex('rest')
.insert(req.body)
.then((dados) => {
res.send(dados);
}, next)
});
server.get('/show/:id', (req, res, next) => {
const { id } = req.params;
knex('rest')
.where('id', id)
.first()
.then((dados) => {
if(!dados) return res.send(new errs.BadRequestError('nada foi encontrado'))
res.send(dados);
}, next)
});
server.put('/update/:id', (req, res, next) => {
const { id } = req.params;
knex('rest')
.where('id', id)
.update(req.body)
.then((dados) => {
if(!dados) return res.send(new errs.BadRequestError('nada foi encontrado'))
res.send('dados atualizados');
}, next)
});
server.del('/delete/:id', (req, res, next) => {
const { id } = req.params;
knex('rest')
.where('id', id)
.delete()
.then((dados) => {
if(!dados) return res.send(new errs.BadRequestError('nada foi encontrado'))
res.send('dados excluidos');
}, next)
});