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 可以让代码看起来更像同步代码,并且更容易阅读。
另外,还可以使用全局变量或模块导出来在多个模块之间共享数据。但是,这种方法并不推荐,因为全局变量会破坏模块的封装性,并且难以维护。