-1
I have a problem with my code and I couldn’t get out of it. What happens is that I make a request get ( that is working ) and I get the return of it that comes in JSON format, after that I do a for to go through my data and do an insertion of data via ( request post ), the problem is there:
async function intervalFunc() {
console.log('Um minuto:');
request('https://xxx/api/report/v1', function (error, response, body) {
console.log('error:', error); // Print the error if one occurred
console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
var obj = JSON.parse(body);
(async () => {
for (var i = 0; i < obj.data.length; i++) {
console.log('dentro do for passou pelo id: ' + i);
var val = obj.data[i];
await inserirBrasil(val, i);
}
})()
});
}
async function inserirBrasil(val, i) {
console.log('iserindo id ' + i + " "+val.uf);
request.post('http://localhost:1111/api/brasil/', {
data: { uid: val.uid, uf: val.uf, estado: val.state }
}, (error, res, body) => {
if (error) {
//console.error(error)
return
}
//console.log('ok ', i);
//console.log('res ', res);
//console.log('body ', body);
})
}
below is my console return:
Um minuto:
error: null
statusCode: 200
dentro do for passou pelo id: 0
iserindo id 0 SP
dentro do for passou pelo id: 1
iserindo id 1 RJ
dentro do for passou pelo id: 2
iserindo id 2 CE
dentro do for passou pelo id: 3
iserindo id 3 DF
dentro do for passou pelo id: 4
iserindo id 4 MG
dentro do for passou pelo id: 5
iserindo id 5 SC
dentro do for passou pelo id: 6
iserindo id 6 RS
dentro do for passou pelo id: 7
iserindo id 7 BA
dentro do for passou pelo id: 8
iserindo id 8 PR
dentro do for passou pelo id: 9
iserindo id 9 AM
dentro do for passou pelo id: 10
iserindo id 10 PE
dentro do for passou pelo id: 11
iserindo id 11 ES
dentro do for passou pelo id: 12
iserindo id 12 GO
dentro do for passou pelo id: 13
iserindo id 13 MS
dentro do for passou pelo id: 14
iserindo id 14 AC
dentro do for passou pelo id: 15
iserindo id 15 SE
dentro do for passou pelo id: 16
iserindo id 16 RN
dentro do for passou pelo id: 17
iserindo id 17 MA
dentro do for passou pelo id: 18
iserindo id 18 MT
dentro do for passou pelo id: 19
iserindo id 19 AL
dentro do for passou pelo id: 20
iserindo id 20 TO
dentro do for passou pelo id: 21
iserindo id 21 PI
dentro do for passou pelo id: 22
iserindo id 22 PA
dentro do for passou pelo id: 23
iserindo id 23 PB
dentro do for passou pelo id: 24
iserindo id 24 RO
dentro do for passou pelo id: 25
iserindo id 25 RR
dentro do for passou pelo id: 26
iserindo id 26 AP
and within the post of my api, I put a console.log(Object.Keys(req). length), result below:
size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33 size: 33
In summary, my poorly done code is sending the requisition (with all states together) every time I give a post ( and that should be a post for each state ). someone could give me a support?
below code in my api post
exports.post = async (repositorio, validationContract, req, res) => {
try {
let data = req.body;
if (!validationContract.isValid()) {
res.status(400).send({
message: 'Existem dados inválidos na sua requisição.',
validation: validationContract.errors()
}).end();
return;
}
let resultado = await repositorio.create(data);
res.status(201).send(resultado);
} catch (err) {
console.log('Post com erro, motivo: ', err);
res.status(500).send({ message: 'Erro no processamento', error: err });
}
}
I modified the code below by changing the type 'date' to 'json' and the code entered only the first two records, not inserting the others.
async function inserirBrasil(val, i) {
console.log('iserindo id ' + i + " "+val.uf);
request.post('http://localhost:1111/api/brasil/', {
json: { uid: val.uid, uf: val.uf, estado: val.state }
}, (error, res, body) => {
if (error) {
//console.error(error)
return
}
//console.log('ok ', i);
//console.log('res ', res);
//console.log('body ', body);
})
}
Could we see the POST handling in your API? Because if the req in his console log. is the Express request object, the error is there.
– Samir Braga
grateful, added to the question code
– Renato Cristiano