![](/img/trans.png)
[英]How can I get the result of a query method with mysql in nodejs?
[英]How can I save the query result in a variable using the mysql library in NodeJS?
我有這段代碼,它打印出正確的結果。 我只想在變量中使用“example@gmail.com”:
[ RowDataPacket { CORREO: 'example@gmail.com' } ]
conexion.query("SELECT CORREO FROM ALUMNOS WHERE NOMBRE='RUBEN'", function (error, results, fields) {
if (error) {
throw error;
}else{
console.log(results)
}
})
但是當我想把它保存在一個變量中時,它給我一個錯誤或未定義:
async function obtainEmail() {
let result = await conexion.query("SELECT CORREO FROM ALUMNOS WHERE NOMBRE='RUBEN'", function (error, results, fields) {
if (error) {
throw error;
}else{
return results;
}
})
}
obtainEmail().then(data => console.log(data));
結果:
undefined
我也測試過:
let test = await obtainEmail();
console.log(test);
結果:
SyntaxError: await is only valid in async functions and the top level bodies of modules
嘗試將查詢結果(“example@gmail.com”)保存在變量中
如果將查詢 function 包裝到 Promise 中,您將能夠使用async / await
。
const results = await new Promise((resolve, reject) => {
conexion.query("SELECT CORREO FROM ALUMNOS WHERE NOMBRE='RUBEN'", function (error, results, fields) {
if (error) {
return reject(error);
}
resolve(results)
})
})
為了擺脫await is only valid in async functions
錯誤,調用它的 function 必須有一個async
,例如
(async () => {
const results = await new Promise((resolve, reject) => {
conexion.query(
"SELECT CORREO FROM ALUMNOS WHERE NOMBRE='RUBEN'",
function (error, results, fields) {
if (error) {
return reject(error);
}
resolve(results);
}
);
});
})();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.