Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

146
Visualizações
API Node/Express cuando se obtienen datos de solicitudes multipel se mezclan y se producen resultados incorrectos

Tengo una API de back-end de nodejs/express que cuando recibo cientos de solicitudes en segundos empiezo a obtener resultados mixtos donde los datos se cruzan entre las solicitudes y conducen a resultados inesperados e incorrectos. ¿Puede alguien señalarme dónde estoy definiendo incorrectamente las variables que cuando obtengo una de las funciones de espera hace que las otras variables se sobrescriban con los siguientes datos de solicitudes y causen mis problemas?

 router.post('/autoscan3', async(req,res,next) => { let authrule = "autoscan" console.log(req.body.companyDomain + " " + req.body.user + " for folder: " + req.body.folderid) let totalscans = 0; let client = await getDB(); let authorizationResults = await checkAuthorization(client, req.body.companyDomain); const featureSet = authorizationResults.features; let company = authorizationResults.company; const clientid = authorizationResults.client_id; const clientsecret = authorizationResults.secret; let tenantid = await getTenantID(req.body.companyDomain, client); let token = await msgraphservices.getClientCredentialsAccessToken(tenantid, clientid, clientsecret) let scanResults = [] let folderscans = 0; try{ for(let a = 0; a < req.body.messages.length; a++){ let senderAddress = req.body.messages[a].senderAddress; let emailBody = req.body.messages[a].emailBody; let messageid = req.body.messages[a].messageid; let receivedDateTime = req.body.messages[a].receivedDateTime; let user = req.body.messages[a].recieverAddress; let subject = req.body.messages[a].subject; let attachments = req.body.messages[a].attachments; let links = req.body.messages[a].emailBodyLinks; let headers = req.body.messages[a].headers let knownaddress if (senderAddress.includes(req.body.companyDomain)) { knownaddress = 10 } else { knownaddress = await searchForSender(client, senderAddress, req.body.user, token, "");} let assessmentResults = await assessment( messageid, emailBody, senderAddress, user, subject, receivedDateTime, company, attachments, links, req.body.companyDomain, client, headers, knownaddress, featureSet, authrule ) console.log('adding to folderscans') folderscans++ try { await msgraphservices.updateUserCategory2(messageid, req.body.user, req.body.folderid, assessmentResults.riskFactor,token) } catch(e) { console.log(`error on category tag for ${messageid} with user ${req.body.user}`); console.log(e); } } console.log(`folder scans ${folderscans}`); totalscans = totalscans + folderscans return res.status(200).json({status:"success", totalscans:totalscans}); } catch(e) { console.log(`error while trying to loop for user ${req.body.user}`) console.log(e) logapierror(e.stack, req.body.user, req.body) return res.status(200).json({status:'error', totalscans:totalscans, error:e}); } });
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Es muy probable let client = await getDB();

Si varias solicitudes utilizan la misma instantánea de la base de datos pero no se conocen entre sí, es muy probable que sobrescriban los datos de las demás.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda