Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk mengisi tatasusunan di luar klausa fungsi dalam nodejs

Saya mahu mengisi tatasusunan di luar blok fungsi

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)

Saya nak isixlsSourceFilesRetrievedTsdz. Adakah yang salah dengan apa yang saya tulis? Saya mendapat tatasusunan kosong. Console.log di dalam blok dalam ulasan memberikan hasil yang diingini, bagaimana saya boleh mendapatkannya dari luar blok?

P粉714844743P粉714844743240 hari yang lalu431

membalas semua(1)saya akan balas

  • P粉759457420

    P粉7594574202024-02-22 11:05:55

    Ini sepatutnya berfungsi:

    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)
      
    }

    Apa yang saya lakukan di sini ialah membungkus semuanya dengan Janji dan mengembalikannya untuk menunggu hasilnya.

    balas
    0
  • Batalbalas