javascript - 通过mysql回调函数将数据传递给全局变量?
问题描述
我是 nodejs 的新手,仍然掌握它的窍门。我希望以下代码将用户传回数据库中的变量。连接和查询在我取回一些数据时起作用,但我似乎无法将其存储在全局变量中。
在此示例中,变量“test_user”有效(就像它在函数本身中一样),但变量“test”不起作用。
我假设我需要将 async 和 await 放在某个地方,但我不知道在哪里。
let test;
app.get('/testing', (req, res) => {
res.send("testing area");
test = getUserByEmail("w@w", function(result) {
let test_user;
if(result.length > 0)
{
test_user = result[0];
console.log(test_user); //logs the result ok
} else {
test_user = null;
}
return test_user;
});
console.log(test); //doesn't log the result
});
function getUserByEmail(email, callback) {
const SELECT_QUERY = "SELECT * FROM users WHERE email='"+ email +"'";
connection.query(SELECT_QUERY, (err, results) => {
if(err) {
console.error(err);
} else {
return callback(results);
}
});
}
解决方案
您正在使用const
,这意味着您无法使用 更改该变量的值=
。你必须let
改用。
推荐阅读
- reactjs - 如何设置 MuiButton 文本和活动颜色
- java - 如何使用 java 接口来计算两个集合的并集、交集和差集,所有这些都在接口的默认方法中?
- php - Laravel 按数组值排序 hasMany 关系
- asp.net-core - 在 ASP.NET Core 2.2 的视图中检查登录用户角色
- node.js - 系统中的security_token是什么意思,节点堆快照中全局的native_context是什么意思
- javascript - CodeCamp 算法虚假保镖
- python - 无法使用 del 函数删除 json 中的字典键。得到一个类型错误
- vim - 如何在 vim 中使用不同的配色方案和语法高亮显示?
- python - OpenAi Gym 安装 - python 版本不匹配
- sql - 在 TABLE 中阻止并行插入