node.js如何保存查询的结果,让外面的函数也能调用这个结果

img


想让这里的results的results外面的函数也能调用,但是尝试了各种方法赋值后外面的函数调用了打印出来也是空值,有什么办法可以解决吗

ChatGPT尝试为您解答,仅供参考
在 Node.js 中,可以通过使用回调函数、Promise 和 async/await 来在函数之间传递查询结果。

使用回调函数:

function queryData(callback) {
  // 执行查询
  db.query('SELECT * FROM table', (error, results) => {
    if (error) {
      callback(error);
    } else {
      callback(null, results);
    }
  });
}

queryData((error, results) => {
  if (error) {
    console.error(error);
  } else {
    console.log(results);
  }
});

使用 Promise:

function queryData() {
    return new Promise((resolve, reject) => {
        // 执行查询
        db.query('SELECT * FROM table', (error, results) => {
            if (error) {
                reject(error);
            } else {
                resolve(results);
            }
        });
    });
}

queryData()
.then(results => {
    console.log(results);
})
.catch(error => {
    console.error(error);
});

使用 async/await:

async function getData() {
  try {
    // 执行查询
    const results = await db.query('SELECT * FROM table');
    console.log(results);
  } catch (error) {
    console.error(error);
  }
}

getData();

在这些方法中,回调函数和 Promise 都可以用来在异步函数之间传递数据,而 async/await 可以让代码看起来更像同步代码,并且更容易阅读。


另外,还可以使用全局变量或模块导出来在多个模块之间共享数据。但是,这种方法并不推荐,因为全局变量会破坏模块的封装性,并且难以维护。