函数计算中,在 note.js 中访问 mysql。 queryResult 里面 获取不到 访问数据库是否成功了。而 callback回调又是个异步。 函数执行完了,这货才回来。我该咋解决这种问题呀?
以下为热心网友提供的参考意见
在函数计算中,如果您需要在 Node.js 中使用 MySQL,可以使用 mysql
模块。但是,由于回调函数是异步的,您需要使用 Promise 或者 async/await 来处理异步操作。
以下是一个使用 Promise 的示例:
const mysql = require('mysql');
function queryDatabase(sql, args) {
return new Promise((resolve, reject) => {
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database'
});
connection.connect();
connection.query(sql, args, (error, results) => {
if (error) {
reject(error);
} else {
resolve(results);
}
connection.end();
});
});
}
// 使用示例
queryDatabase('SELECT * FROM users WHERE id = ?', [1])
.then(results => {
console.log(results);
})
.catch(error => {
console.error(error);
});
以下是一个使用 async/await 的示例:
const mysql = require('mysql');
async function queryDatabase(sql, args) {
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database'
});
await connection.connect();
const [results] = await connection.promise().query(sql, args);
connection.end();
return results;
}
// 使用示例
(async () => {
try {
const results = await queryDatabase('SELECT * FROM users WHERE id = ?', [1]);
console.log(results);
} catch (error) {
console.error(error);
}
})();
请注意,您需要根据实际情况替换数据库连接信息(如主机名、用户名、密码和数据库名)。