Comment remplir un tableau en dehors de la clause de fonction dans nodejs
P粉714844743
P粉714844743 2024-02-21 18:49:57
0
1
429

Je souhaite remplir un tableau en dehors du bloc fonctionnel

app.get('/getpackages/:dateStart/:dateEnd/:limit', function (req, res) {
  var xlsSourceFilesRetrievedTsdz = []
  var xlsSourceFilesRetrievedSvn = []

  var dateStart = req.params.dateStart;
  var dateEnd = req.params.dateStart;
  var limit = Number(req.params.limit);
  
  let sql = 'SELECT * FROM summary_dz WHERE Start != "" AND  Start BETWEEN ? AND ? LIMIT ?'
  db.query(sql, [dateStart,dateEnd,limit], function (err, results) {
    if (err) throw err;
    for (const counter in results) {  
      xlsSourceFilesRetrievedTsdz.push(results[counter].XlsSourceFile);
    }
    // console.log(xlsSourceFilesRetrievedTsdz)
  });
  console.log(xlsSourceFilesRetrievedTsdz)

Je veux le remplirxlsSourceFilesRetrievedTsdz. Y a-t-il quelque chose qui ne va pas dans ce que j'ai écrit ? J'obtiens un tableau vide. Le console.log à l'intérieur du bloc dans le commentaire donne le résultat souhaité, comment puis-je l'obtenir depuis l'extérieur du bloc ?

P粉714844743
P粉714844743

répondre à tous(1)
P粉759457420

Cela devrait fonctionner :

app.get('/getpackages/:dateStart/:dateEnd/:limit', async (req, res) => {
  var xlsSourceFilesRetrievedTsdz = []
  var xlsSourceFilesRetrievedSvn = []
  const promiseQuery = (sql, dateStart, dateEnd, limit) => {
    return new Promise((res, rej)=> {
      db.query(sql, [dateStart,dateEnd,limit], function (err, results) {
        if (err) rej(err);
        res(results)
      });
    })
  }

  const sql = 'SELECT * FROM summary_dz WHERE Start != "" AND  Start BETWEEN ? AND ? LIMIT ?'

  const dateStart = req.params.dateStart;
  const dateEnd = req.params.dateStart;
  const limit = Number(req.params.limit);
  
 
  const results = await promiseQuery(sql, dateStart, dateEnd, limit)
  for (const counter in results) {  
    xlsSourceFilesRetrievedTsdz.push(results[counter].XlsSourceFile);
  }

  console.log(xlsSourceFilesRetrievedTsdz)
  
}

Ce que j'ai fait ici, c'est d'envelopper le tout dans une promesse et de la retourner en attendant le résultat.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!